|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1998 - 1999
//
// File: d3drmtexture3obj.cpp
//
//--------------------------------------------------------------------------
// d3drmTextureObj.cpp : Implementation of CDirectApp and DLL registration.
#include "stdafx.h"
#include "Direct.h"
#include "dms.h"
#include "d3drmTexture3Obj.h"
#include "ddSurface4Obj.h"
CONSTRUCTOR(_dxj_Direct3dRMTexture3, { m_buffer1 = NULL; m_buffer1size = 0; m_buffer2 = NULL; m_buffer2size = 0; m_pallette = NULL; m_palettesize = 0;
})
DESTRUCTOR(_dxj_Direct3dRMTexture3, { if ( m_buffer1 ) free(m_buffer1); if ( m_buffer2 ) free(m_buffer2); if ( m_pallette ) free(m_pallette); })
GETSET_OBJECT(_dxj_Direct3dRMTexture3)
CLONE_R(_dxj_Direct3dRMTexture3,Direct3DRMTexture3); GETNAME_R(_dxj_Direct3dRMTexture3); SETNAME_R(_dxj_Direct3dRMTexture3); GETCLASSNAME_R(_dxj_Direct3dRMTexture3); ADDDESTROYCALLBACK_R(_dxj_Direct3dRMTexture3); DELETEDESTROYCALLBACK_R(_dxj_Direct3dRMTexture3);
PASS_THROUGH_CAST_1_R(_dxj_Direct3dRMTexture3, setAppData, SetAppData, long,(DWORD)); PASS_THROUGH_CAST_1_R(_dxj_Direct3dRMTexture3, setColors, SetColors, long,(DWORD)); PASS_THROUGH_CAST_1_R(_dxj_Direct3dRMTexture3, setShades, SetShades, long,(DWORD)); PASS_THROUGH_CAST_1_R(_dxj_Direct3dRMTexture3, setDecalScale, SetDecalScale, long,(DWORD)); PASS_THROUGH_CAST_1_R(_dxj_Direct3dRMTexture3, setDecalTransparency, SetDecalTransparency, long,(DWORD)); PASS_THROUGH_CAST_1_R(_dxj_Direct3dRMTexture3, setDecalTransparentColor, SetDecalTransparentColor, d3dcolor,(DWORD));
PASS_THROUGH2_R(_dxj_Direct3dRMTexture3, setDecalSize, SetDecalSize, d3dvalue, d3dvalue); PASS_THROUGH_CAST_2_R(_dxj_Direct3dRMTexture3, setDecalOrigin, SetDecalOrigin, long,(DWORD),long,(DWORD)); PASS_THROUGH2_R(_dxj_Direct3dRMTexture3, getDecalSize, GetDecalSize, D3DVALUE*, D3DVALUE*); PASS_THROUGH_CAST_2_R(_dxj_Direct3dRMTexture3, getDecalOrigin, GetDecalOrigin, long*, (long*), long*,(long*));
GET_DIRECT_R(_dxj_Direct3dRMTexture3, getAppData, GetAppData, long); GET_DIRECT_R(_dxj_Direct3dRMTexture3, getShades, GetShades, long); GET_DIRECT_R(_dxj_Direct3dRMTexture3, getColors, GetColors, long); GET_DIRECT_R(_dxj_Direct3dRMTexture3, getDecalScale, GetDecalScale, long); GET_DIRECT_R(_dxj_Direct3dRMTexture3, getDecalTransparency, GetDecalTransparency, long); GET_DIRECT_R(_dxj_Direct3dRMTexture3, getDecalTransparentColor, GetDecalTransparentColor, d3dcolor);
/////////////////////////////////////////////////////////////////////////////
STDMETHODIMP C_dxj_Direct3dRMTexture3Object::generateMIPMap() { return m__dxj_Direct3dRMTexture3->GenerateMIPMap(0); }
/////////////////////////////////////////////////////////////////////////////
STDMETHODIMP C_dxj_Direct3dRMTexture3Object::changed(long flags, long nRects, SAFEARRAY **psa) { if ((nRects)&&(!ISSAFEARRAY1D(psa,(DWORD)nRects))) return E_INVALIDARG; return m__dxj_Direct3dRMTexture3->Changed((DWORD)flags,(DWORD)nRects,(RECT*)((SAFEARRAY*)*psa)->pvData); }
STDMETHODIMP C_dxj_Direct3dRMTexture3Object::getCacheFlags(long *flags) { long temp; return m__dxj_Direct3dRMTexture3->GetCacheOptions(&temp,(DWORD*)flags); }
STDMETHODIMP C_dxj_Direct3dRMTexture3Object::getCacheImportance(long *import) { DWORD temp; return m__dxj_Direct3dRMTexture3->GetCacheOptions(import,&temp); }
STDMETHODIMP C_dxj_Direct3dRMTexture3Object::setCacheOptions(long import, long flags) { return m__dxj_Direct3dRMTexture3->SetCacheOptions(import,(DWORD)flags); }
STDMETHODIMP C_dxj_Direct3dRMTexture3Object::getSurface(long flags, I_dxj_DirectDrawSurface4 **ppret) {
HRESULT hr; LPDIRECTDRAWSURFACE lpSurf1=NULL; LPDIRECTDRAWSURFACE4 lpSurf4=NULL;
*ppret=NULL;
hr=m__dxj_Direct3dRMTexture3->GetSurface((DWORD)flags,&lpSurf1); if FAILED(hr) return hr;
hr=lpSurf1->QueryInterface(IID_IDirectDrawSurface4,(void**)&lpSurf4); lpSurf1->Release(); if FAILED(hr) return hr;
INTERNAL_CREATE(_dxj_DirectDrawSurface4,lpSurf4,ppret); if (*ppret==NULL) { lpSurf4->Release(); return hr; }
return hr;
}
|