pixelshader.cpp

来自「用于GPU通用计算的编程语言BrookGPU 0.4」· C++ 代码 · 共 49 行

CPP
49
字号
// pixelshader.cpp#include "core.hpp"#include "pixelshader.hpp"using namespace fibble;PixelShader::PixelShader( Context* inContext, const std::string& inSource )  : device(NULL), shaderHandle(NULL){  device = inContext->getDevice();  device->AddRef();  // assemble the shader  HRESULT result;	LPD3DXBUFFER codeBuffer;	LPD3DXBUFFER errorBuffer;		result = D3DXAssembleShader( inSource.c_str(), inSource.size(), NULL, NULL, 0, &codeBuffer, &errorBuffer );	if( errorBuffer != NULL )  {    const char* errorMessage = (const char*)errorBuffer->GetBufferPointer();    DX9Warn( "Pixel shader failed to compile:\n%s", errorMessage );    throw -1;  }  else if( FAILED(result) )  {    DX9Warn( "Pixel shader failed to compile." );    throw -1;  }	result = device->CreatePixelShader( (DWORD*)codeBuffer->GetBufferPointer(), &shaderHandle );	codeBuffer->Release();  if( FAILED(result) )  {    DX9Warn( "Failed to allocate pixel shader." );    throw -1;  }}PixelShader::~PixelShader(){  if( shaderHandle != NULL )    shaderHandle->Release();  if( device != NULL )    device->Release();}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?