Ejemplo n.º 1
0
int ZXML::GetAttributeText( IXMLDOMNode* pNode, LPSTR strAttrName, LPSTR strRet )
{
	wchar_t					wstrAttr[128];
	IXMLDOMNode*			pAttrNode = NULL;
	IXMLDOMNamedNodeMap*	pMap = NULL;
	VARIANT					varValue;


	try
	{ 
		int n = mbstowcs( wstrAttr, strAttrName, 128 );
		pNode->get_attributes( &pMap );
		pMap->getNamedItem( wstrAttr, &pAttrNode );
		pAttrNode->get_nodeValue( &varValue );
		strcpy( strRet,(const char*)_bstr_t(varValue.bstrVal,FALSE) );
//		wcstombs( strRet, varValue.bstrVal , 128 );

		S_REL( pAttrNode );
		S_REL( pMap );

		return TRUE;
	}
	catch(...)
	{
		S_REL( pAttrNode );
		S_REL( pMap );
		return FALSE;
	}
}
Ejemplo n.º 2
0
/**-----------------------------------------------------------------------------
 * 초기화 객체들 소거
 *------------------------------------------------------------------------------
 */
VOID Cleanup()
{
	S_REL( g_pPS );
	S_REL( g_pIB );
	S_REL( g_pVB );
	S_REL( g_pd3dDevice );
	S_REL( g_pD3D );
}
Ejemplo n.º 3
0
/**-----------------------------------------------------------------------------
 * 초기화 객체들 소거
 *------------------------------------------------------------------------------
 */
VOID Cleanup()
{
	for ( int i = 0; i < 4; i++ )
	{
		S_REL( g_pTexBillboard[i] );
	}
	S_REL( g_pd3dDevice );
	S_REL( g_pD3D );
}
ZPSMgr::~ZPSMgr()
{
	list<ZPSTable*>::iterator it;
	for( it = m_PSTable.begin() ; it != m_PSTable.end() ; it++ )
	{
		S_REL( (*it)->pDecl );
		S_REL( (*it)->pShader );
	}
	stl_wipe( m_PSTable );
}
int ZPSMgr::Add( char *fname, DWORD fvf )
{
	D3DVERTEXELEMENT9	decl[MAX_FVF_DECL_SIZE];

	if( Get( fname ) ) return 1;

	ZPSTable*	p = new ZPSTable;
	p->name = fname;

	// FVF를 사용해서 정점선언값을 자동으로 채워넣는다
	D3DXDeclaratorFromFVF( fvf, decl );
	// 정점선언값으로 m_pShaderDecl을 생성한다.
	m_pDev->CreateVertexDeclaration( decl, &p->pDecl );
	LPD3DXBUFFER pCode;

	// 정점쉐이더 파일을 읽어와서 정점쉐이더 인터페이스를 생성한다.
	if( FAILED( D3DXAssembleShaderFromFile( fname, NULL, NULL, 0, &pCode, NULL ) ) )
		return 0;

	m_pDev->CreatePixelShader( (DWORD*)pCode->GetBufferPointer(), &p->pShader );

	S_REL( pCode );

	m_PSTable.push_back( p );

	return 1;
}
Ejemplo n.º 6
0
HRESULT InitPS()
{
	LPD3DXBUFFER pCode;

	// simple.vs 파일을 읽어와서 정점쉐이더 인터페이스를 생성한다.
	if( FAILED( D3DXAssembleShaderFromFile( "simple.ps", NULL, NULL, 0, &pCode, NULL ) ) )
		return E_FAIL;

	g_pd3dDevice->CreatePixelShader( (DWORD*)pCode->GetBufferPointer(), &g_pPS);

	S_REL( pCode );

	return S_OK;
}
Ejemplo n.º 7
0
/**-----------------------------------------------------------------------------
 * 초기화 객체들 소거
 *------------------------------------------------------------------------------
 */
VOID Cleanup()
{
	S_REL( g_pDecl );
	S_REL( g_pEffect );
	S_REL( g_pIB );
	S_REL( g_pVB );
	S_REL( g_pd3dDevice );
	S_REL( g_pD3D );
}
Ejemplo n.º 8
0
bool CD3D9Shader::createFromMemory(void* pBuf, int nSize,LPD3DXINCLUDE pInclude)
{
	IDirect3DDevice9* pD3D9Device = GetD3D9RenderSystem().GetD3D9Device();
	if (ms_pEffectPool==NULL)
	{
		D3DXCreateEffectPool( & ms_pEffectPool);
	}
	DWORD dwShaderFlags = D3DXFX_NOT_CLONEABLE;
	ID3DXBuffer* errorBuffer = 0;
	D3DXCreateEffect(pD3D9Device,pBuf,nSize, NULL, pInclude, dwShaderFlags, 
		ms_pEffectPool, &m_pEffect, &errorBuffer);
	// output any error messages
	if(errorBuffer)
	{
		::MessageBoxA(0, (char*)errorBuffer->GetBufferPointer(), 0, 0);
		S_REL(errorBuffer);
	}
	return m_pEffect!=NULL;
}
Ejemplo n.º 9
0
HRESULT InitVS()
{
	D3DVERTEXELEMENT9	decl[MAX_FVF_DECL_SIZE];
	// FVF를 사용해서 정점선언값을 자동으로 채워넣는다
	D3DXDeclaratorFromFVF( MYVERTEX::FVF, decl );
	// 정점선언값으로 g_pDecl을 생성한다.
	g_pd3dDevice->CreateVertexDeclaration( decl, &g_pDecl );
	LPD3DXBUFFER pCode;

	// simple.vs 파일을 읽어와서 정점쉐이더 인터페이스를 생성한다.
	if( FAILED( D3DXAssembleShaderFromFile( "simple.vs", NULL, NULL, 0, &pCode, NULL ) ) )
		return E_FAIL;

	g_pd3dDevice->CreateVertexShader( (DWORD*)pCode->GetBufferPointer(), &g_pVS);

	S_REL( pCode );

	return S_OK;
}
ZWater::~ZWater()
{
    S_REL( m_pTexWater[0] );
    S_REL( m_pTexWater[1] );
    S_REL( m_pVB );
}
Ejemplo n.º 11
0
CD3D9Shader::~CD3D9Shader()
{
	S_REL(m_pEffect);
}