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:
void Unlink( void );
void Link( plDXDeviceRef **back );
plDXDeviceRef *GetNext( void ) { return fNext; }
bool IsLinked( void ) { return fBack != nil; }
virtual void Release( void ) { }
void Unlink();
void Link(plDXDeviceRef **back);
plDXDeviceRef *GetNext() const { return fNext; }
bool IsLinked() const { return fBack != nullptr; }
virtual void Release() { }
plDXDeviceRef();

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

@ -121,7 +121,9 @@ HRESULT plDXPixelShader::ICreate(plDXPipeline* pipe)
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());

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)
: fOwner(owner),
fErrorString(nil),
fPipe(nil)
{
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)
{
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
#include "plDXDeviceRef.h"
#include "plString.h"
class plShader;
class plDXPipeline;
@ -52,11 +53,11 @@ class plDXShader : public plDXDeviceRef
{
protected:
plShader* fOwner;
char* fErrorString;
plString fErrorString;
plDXPipeline* fPipe;
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 ISetConstants(plDXPipeline* pipe) = 0; // On error, sets error string.
@ -65,7 +66,7 @@ public:
plDXShader(plShader* owner);
virtual ~plDXShader();
const char* GetErrorString() const { return fErrorString; }
plString GetErrorString() const { return fErrorString; }
void SetOwner(plShader* owner);
};

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

@ -124,7 +124,9 @@ HRESULT plDXVertexShader::ICreate(plDXPipeline* pipe)
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());

Loading…
Cancel
Save