Browse Source

Convert plDXShader's error string to a plString, and do some cleanup

Michael Hansen 11 years ago
parent
commit
0d53e4e0ec
  1. 10
      Sources/Plasma/PubUtilLib/plPipeline/DX/plDXDeviceRef.h
  2. 4
      Sources/Plasma/PubUtilLib/plPipeline/DX/plDXPixelShader.cpp
  3. 12
      Sources/Plasma/PubUtilLib/plPipeline/DX/plDXShader.cpp
  4. 7
      Sources/Plasma/PubUtilLib/plPipeline/DX/plDXShader.h
  5. 4
      Sources/Plasma/PubUtilLib/plPipeline/DX/plDXVertexShader.cpp

10
Sources/Plasma/PubUtilLib/plPipeline/DX/plDXDeviceRef.h

@ -67,11 +67,11 @@ class plDXDeviceRef : public hsGDeviceRef
public: public:
void Unlink( void ); void Unlink();
void Link( plDXDeviceRef **back ); void Link(plDXDeviceRef **back);
plDXDeviceRef *GetNext( void ) { return fNext; } plDXDeviceRef *GetNext() const { return fNext; }
bool IsLinked( void ) { return fBack != nil; } bool IsLinked() const { return fBack != nullptr; }
virtual void Release( void ) { } virtual void Release() { }
plDXDeviceRef(); plDXDeviceRef();

4
Sources/Plasma/PubUtilLib/plPipeline/DX/plDXPixelShader.cpp

@ -121,7 +121,9 @@ HRESULT plDXPixelShader::ICreate(plDXPipeline* pipe)
if( FAILED(hr) ) if( FAILED(hr) )
{ {
return IOnError(hr, compilationErrors ? (char*)compilationErrors->GetBufferPointer() : "File not found"); return IOnError(hr, compilationErrors
? reinterpret_cast<const char *>(compilationErrors->GetBufferPointer())
: "File not found");
} }
shaderCodes = (DWORD*)(compiledShader->GetBufferPointer()); shaderCodes = (DWORD*)(compiledShader->GetBufferPointer());

12
Sources/Plasma/PubUtilLib/plPipeline/DX/plDXShader.cpp

@ -54,7 +54,6 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
plDXShader::plDXShader(plShader* owner) plDXShader::plDXShader(plShader* owner)
: fOwner(owner), : fOwner(owner),
fErrorString(nil),
fPipe(nil) fPipe(nil)
{ {
owner->SetDeviceRef(this); owner->SetDeviceRef(this);
@ -77,17 +76,6 @@ void plDXShader::SetOwner(plShader* owner)
} }
} }
const char* plDXShader::ISetError(const char* errStr)
{
delete [] fErrorString;
if( errStr )
fErrorString = hsStrcpy(errStr);
else
fErrorString = nil;
return fErrorString;
}
HRESULT plDXShader::IOnError(HRESULT hr, const char* errStr) HRESULT plDXShader::IOnError(HRESULT hr, const char* errStr)
{ {
ISetError(errStr); ISetError(errStr);

7
Sources/Plasma/PubUtilLib/plPipeline/DX/plDXShader.h

@ -44,6 +44,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
#define plDXShader_inc #define plDXShader_inc
#include "plDXDeviceRef.h" #include "plDXDeviceRef.h"
#include "plString.h"
class plShader; class plShader;
class plDXPipeline; class plDXPipeline;
@ -52,11 +53,11 @@ class plDXShader : public plDXDeviceRef
{ {
protected: protected:
plShader* fOwner; plShader* fOwner;
char* fErrorString; plString fErrorString;
plDXPipeline* fPipe; plDXPipeline* fPipe;
HRESULT IOnError(HRESULT hr, const char* errStr); HRESULT IOnError(HRESULT hr, const char* errStr);
const char* ISetError(const char* errStr); void ISetError(const char* errStr) { fErrorString = errStr; }
virtual HRESULT ICreate(plDXPipeline* pipe) = 0; virtual HRESULT ICreate(plDXPipeline* pipe) = 0;
virtual HRESULT ISetConstants(plDXPipeline* pipe) = 0; // On error, sets error string. virtual HRESULT ISetConstants(plDXPipeline* pipe) = 0; // On error, sets error string.
@ -65,7 +66,7 @@ public:
plDXShader(plShader* owner); plDXShader(plShader* owner);
virtual ~plDXShader(); virtual ~plDXShader();
const char* GetErrorString() const { return fErrorString; } plString GetErrorString() const { return fErrorString; }
void SetOwner(plShader* owner); void SetOwner(plShader* owner);
}; };

4
Sources/Plasma/PubUtilLib/plPipeline/DX/plDXVertexShader.cpp

@ -124,7 +124,9 @@ HRESULT plDXVertexShader::ICreate(plDXPipeline* pipe)
if( FAILED(hr) ) if( FAILED(hr) )
{ {
return IOnError(hr, compilationErrors ? (char*)compilationErrors->GetBufferPointer() : "File not found"); return IOnError(hr, compilationErrors
? reinterpret_cast<const char *>(compilationErrors->GetBufferPointer())
: "File not found");
} }
shaderCodes = (DWORD*)(compiledShader->GetBufferPointer()); shaderCodes = (DWORD*)(compiledShader->GetBufferPointer());

Loading…
Cancel
Save