From 0d53e4e0ec07f248dbed4007a3c20bc692c06d37 Mon Sep 17 00:00:00 2001 From: Michael Hansen Date: Thu, 9 Jan 2014 19:21:08 -0800 Subject: [PATCH] Convert plDXShader's error string to a plString, and do some cleanup --- .../Plasma/PubUtilLib/plPipeline/DX/plDXDeviceRef.h | 10 +++++----- .../PubUtilLib/plPipeline/DX/plDXPixelShader.cpp | 4 +++- .../Plasma/PubUtilLib/plPipeline/DX/plDXShader.cpp | 12 ------------ Sources/Plasma/PubUtilLib/plPipeline/DX/plDXShader.h | 7 ++++--- .../PubUtilLib/plPipeline/DX/plDXVertexShader.cpp | 4 +++- 5 files changed, 15 insertions(+), 22 deletions(-) diff --git a/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXDeviceRef.h b/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXDeviceRef.h index 8ea05964..d907035b 100644 --- a/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXDeviceRef.h +++ b/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(); diff --git a/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXPixelShader.cpp b/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXPixelShader.cpp index 987219ca..417e2ada 100644 --- a/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXPixelShader.cpp +++ b/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(compilationErrors->GetBufferPointer()) + : "File not found"); } shaderCodes = (DWORD*)(compiledShader->GetBufferPointer()); diff --git a/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXShader.cpp b/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXShader.cpp index 5cf6e6ec..6f99b4d3 100644 --- a/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXShader.cpp +++ b/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); diff --git a/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXShader.h b/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXShader.h index 62a2ebb2..2de1e162 100644 --- a/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXShader.h +++ b/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); }; diff --git a/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXVertexShader.cpp b/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXVertexShader.cpp index 56de890b..ec0de0e8 100644 --- a/Sources/Plasma/PubUtilLib/plPipeline/DX/plDXVertexShader.cpp +++ b/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(compilationErrors->GetBufferPointer()) + : "File not found"); } shaderCodes = (DWORD*)(compiledShader->GetBufferPointer());