EterLib: port GrpMarkInstance.cpp verbatim
Replace the platform_stub skeleton (every member unimplemented) with the 40250 source, so guild marks in text tails and mark boxes load and draw. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
d817bd7cab
commit
91ce13c3cf
@@ -562,3 +562,4 @@
|
||||
{"date": "2026-09-28T04:02:30+00:00", "unit": "EterLib/LensFlare.cpp + ScreenFilter.cpp + Decal.cpp", "action": "unit C (part 1): platform stubs removed, 40250 sources copied verbatim (GL code is commented out in 40250 too); CMapOutdoor callers were already ported, so lens flare, screen filter and CDecal clipping (TerrainDecal) now run", "evidence": "ctest 35/35 (login_live excluded); fake-server frame 900 vs unit B mean abs diff 0.014/255; flare/filter visuals NEEDS_LIVE"}
|
||||
{"date": "2026-09-28T04:05:55+00:00", "unit": "EterLib/GrpShadowTexture.cpp + character shadow render target (RecordingDevice)", "action": "unit C part 2 / unit D: GrpShadowTexture stub replaced with verbatim 40250 copy (dead in 40250); CPU shadow-target rasterizer kept (flat TFACTOR pass, output-equivalent) and switched to the D3D top-left fill rule; Vulkan offscreen targets not needed since snow blur is hard-disabled in 40250", "evidence": "ctest 35/35 (login_live excluded); fake-server frame 900 vs previous mean abs diff 0.013/255 (frame noise); shadow parity NEEDS_LIVE"}
|
||||
{"date": "2026-09-28T04:31:20+00:00", "unit": "SpeedTreeLib/SpeedTreeWrapper.cpp + SpeedTreeForest.cpp + SpeedTreeForestDirectX8.cpp (+ CSpeedTreeRT stand-in)", "action": "unit E: platform proxy tree renderer deleted; 40250 wrapper/forest/DirectX8 copied verbatim (with SpeedTreeConfig.h, VertexShaders.h); SDK SpeedTreeRT.h public API as shim, closed CSpeedTreeRT reimplemented in platform/SpeedTreeLib/SpeedTreeRT.cpp (procedural geometry kept, DIVERGENT); D3D8 vertex-shader decl tokens, D3D_OK, CreateVertexShader/DeleteVertexShader, ID3DXBuffer/D3DXAssembleShader, MessageBox, __min/__max added to shims", "evidence": "ctest 35/35 (login_live excluded); fake-server frame 900 at spawn vs unit D mean abs diff ~3.2/255 (area-name fade + anim phase, no trees in view); spawn moved next to a tree (temporary) shows trunk/branches/leaf cards drawn by the wrapper; tree visuals NEEDS_LIVE"}
|
||||
{"date": "2026-09-28T04:34:02+00:00", "unit": "EterLib/GrpMarkInstance.cpp", "action": "unit F: platform_stub skeleton deleted (every member was MT_PLATFORM_STUB), 40250 source copied verbatim; guild marks (PythonTextTail, PythonWindow CMarkBox) now load and draw", "evidence": "ctest 35/35 (login_live excluded); mark rendering NEEDS_LIVE"}
|
||||
|
||||
@@ -0,0 +1,177 @@
|
||||
{
|
||||
"reference": "EterLib/GrpMarkInstance.cpp",
|
||||
"reference_sha256": "fde2ac70258a3314a265be8c473c23967ef555b030ee43272f0415e9e0e11ff3",
|
||||
"priority": "P4",
|
||||
"contracts": [],
|
||||
"functions": {
|
||||
"CGraphicMarkInstance::SetImageFileName": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::SetImageFileName"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::GetImageFileName": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::GetImageFileName"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::CreateSystem": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::CreateSystem"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::DestroySystem": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::DestroySystem"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::New": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::New"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::Delete": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::Delete"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::Render": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::Render"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::OnRender": {
|
||||
"status": "NEEDS_LIVE",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::OnRender"
|
||||
],
|
||||
"note": "verbatim; guild-mark quads in text tails/guild window need a live guild with an uploaded mark (fake server has no mark image)"
|
||||
},
|
||||
"CGraphicMarkInstance::GetTextureReference": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::GetTextureReference"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::GetTexturePointer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::GetTexturePointer"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::GetGraphicImagePointer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::GetGraphicImagePointer"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::SetScale": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::SetScale"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::SetIndex": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::SetIndex"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::GetWidth": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::GetWidth"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::GetHeight": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::GetHeight"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::SetDiffuseColor": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::SetDiffuseColor"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::SetPosition": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::SetPosition"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::Load": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::Load"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::SetImagePointer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::SetImagePointer"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::IsEmpty": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::IsEmpty"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::Type": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::Type"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::IsType": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::IsType"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::OnIsType": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::OnIsType"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::OnSetImagePointer": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::OnSetImagePointer"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::Initialize": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::Initialize"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::Destroy": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::Destroy"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::CGraphicMarkInstance": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::CGraphicMarkInstance"
|
||||
]
|
||||
},
|
||||
"CGraphicMarkInstance::~CGraphicMarkInstance": {
|
||||
"status": "PORTED",
|
||||
"impl": [
|
||||
"extension/src/port/EterLib/GrpMarkInstance.cpp:CGraphicMarkInstance::~CGraphicMarkInstance"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,170 +0,0 @@
|
||||
// Platform skeleton for EterLib/GrpMarkInstance.h (40250 EterLib/GrpMarkInstance.cpp), generated by platform_stub.py.
|
||||
// Every MT_PLATFORM_STUB() body is unimplemented: replace it with the platform implementation.
|
||||
#include "EterLib/StdAfx.h"
|
||||
#include "EterLib/GrpMarkInstance.h"
|
||||
|
||||
#include "../PlatformStub.h"
|
||||
|
||||
auto CGraphicMarkInstance::Type() -> DWORD
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
return mt_platform_stub_return<DWORD>();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::IsType(DWORD) -> BOOL
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
return mt_platform_stub_return<BOOL>();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::SetImageFileName(const char *) -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::GetImageFileName() -> const std::string &
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
return mt_platform_stub_return<const std::string &>();
|
||||
}
|
||||
|
||||
CGraphicMarkInstance::CGraphicMarkInstance()
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
CGraphicMarkInstance::~CGraphicMarkInstance()
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::Destroy() -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::Render() -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::SetDepth(float) -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::SetDiffuseColor(float, float, float, float) -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::SetPosition(float, float) -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::SetIndex(UINT) -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::SetScale(float) -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::Load() -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::IsEmpty() const -> bool
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
return mt_platform_stub_return<bool>();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::GetWidth() -> int
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
return mt_platform_stub_return<int>();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::GetHeight() -> int
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
return mt_platform_stub_return<int>();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::GetTexturePointer() -> CGraphicTexture *
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
return mt_platform_stub_return<CGraphicTexture *>();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::GetTextureReference() const -> const CGraphicTexture &
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
return mt_platform_stub_return<const CGraphicTexture &>();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::GetGraphicImagePointer() -> CGraphicImage *
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
return mt_platform_stub_return<CGraphicImage *>();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::operator==(const CGraphicMarkInstance &) const -> bool
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
return mt_platform_stub_return<bool>();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::Initialize() -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::OnRender() -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::OnSetImagePointer() -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::OnIsType(DWORD) -> BOOL
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
return mt_platform_stub_return<BOOL>();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::SetImagePointer(CGraphicImage *) -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::CreateSystem(UINT) -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::DestroySystem() -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::New() -> CGraphicMarkInstance *
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
return mt_platform_stub_return<CGraphicMarkInstance *>();
|
||||
}
|
||||
|
||||
auto CGraphicMarkInstance::Delete(CGraphicMarkInstance *) -> void
|
||||
{
|
||||
MT_PLATFORM_STUB();
|
||||
}
|
||||
|
||||
decltype(CGraphicMarkInstance::ms_kPool) CGraphicMarkInstance::ms_kPool{};
|
||||
@@ -0,0 +1,256 @@
|
||||
#include "StdAfx.h"
|
||||
#include "GrpMarkInstance.h"
|
||||
#include "StateManager.h"
|
||||
#include "ResourceManager.h"
|
||||
|
||||
#include "../EterBase/CRC32.h"
|
||||
|
||||
CDynamicPool<CGraphicMarkInstance> CGraphicMarkInstance::ms_kPool;
|
||||
|
||||
void CGraphicMarkInstance::SetImageFileName(const char* c_szFileName)
|
||||
{
|
||||
m_stImageFileName = c_szFileName;
|
||||
}
|
||||
|
||||
const std::string& CGraphicMarkInstance::GetImageFileName()
|
||||
{
|
||||
return m_stImageFileName;
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::CreateSystem(UINT uCapacity)
|
||||
{
|
||||
ms_kPool.Create(uCapacity);
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::DestroySystem()
|
||||
{
|
||||
ms_kPool.Destroy();
|
||||
}
|
||||
|
||||
CGraphicMarkInstance* CGraphicMarkInstance::New()
|
||||
{
|
||||
return ms_kPool.Alloc();
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::Delete(CGraphicMarkInstance* pkImgInst)
|
||||
{
|
||||
pkImgInst->Destroy();
|
||||
ms_kPool.Free(pkImgInst);
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::Render()
|
||||
{
|
||||
if (IsEmpty())
|
||||
return;
|
||||
|
||||
assert(!IsEmpty());
|
||||
|
||||
OnRender();
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::OnRender()
|
||||
{
|
||||
CGraphicImage * pImage = m_roImage.GetPointer();
|
||||
CGraphicTexture * pTexture = pImage->GetTexturePointer();
|
||||
|
||||
UINT uColCount = pImage->GetWidth() / MARK_WIDTH;
|
||||
|
||||
if (uColCount == 0)
|
||||
return;
|
||||
|
||||
UINT uCol = m_uIndex % uColCount;
|
||||
UINT uRow = m_uIndex / uColCount;
|
||||
|
||||
RECT kRect;
|
||||
kRect.left=uCol*MARK_WIDTH;
|
||||
kRect.top=uRow*MARK_HEIGHT;
|
||||
kRect.right=kRect.left+MARK_WIDTH;
|
||||
kRect.bottom=kRect.top+MARK_HEIGHT;
|
||||
|
||||
float texReverseWidth = 1.0f / float(pTexture->GetWidth());
|
||||
float texReverseHeight = 1.0f / float(pTexture->GetHeight());
|
||||
float su = kRect.left * texReverseWidth;
|
||||
float sv = kRect.top * texReverseHeight;
|
||||
float eu = kRect.right * texReverseWidth;
|
||||
float ev = kRect.bottom * texReverseHeight;
|
||||
|
||||
float fRenderWidth=static_cast<float>(MARK_WIDTH)*m_fScale;
|
||||
float fRenderHeight= static_cast<float>(MARK_HEIGHT)*m_fScale;
|
||||
|
||||
TPDTVertex vertices[4];
|
||||
vertices[0].position.x = m_v2Position.x-0.5f;
|
||||
vertices[0].position.y = m_v2Position.y-0.5f;
|
||||
vertices[0].position.z = 0.0f;
|
||||
vertices[0].texCoord = TTextureCoordinate(su, sv);
|
||||
vertices[0].diffuse = m_DiffuseColor;
|
||||
|
||||
vertices[1].position.x = m_v2Position.x + fRenderWidth -0.5f;
|
||||
vertices[1].position.y = m_v2Position.y-0.5f;
|
||||
vertices[1].position.z = 0.0f;
|
||||
vertices[1].texCoord = TTextureCoordinate(eu, sv);
|
||||
vertices[1].diffuse = m_DiffuseColor;
|
||||
|
||||
vertices[2].position.x = m_v2Position.x-0.5f;
|
||||
vertices[2].position.y = m_v2Position.y + fRenderHeight -0.5f;
|
||||
vertices[2].position.z = 0.0f;
|
||||
vertices[2].texCoord = TTextureCoordinate(su, ev);
|
||||
vertices[2].diffuse = m_DiffuseColor;
|
||||
|
||||
vertices[3].position.x = m_v2Position.x + fRenderWidth -0.5f;
|
||||
vertices[3].position.y = m_v2Position.y + fRenderHeight -0.5f;
|
||||
vertices[3].position.z = 0.0f;
|
||||
vertices[3].texCoord = TTextureCoordinate(eu, ev);
|
||||
vertices[3].diffuse = m_DiffuseColor;
|
||||
|
||||
if (CGraphicBase::SetPDTStream(vertices, 4))
|
||||
{
|
||||
CGraphicBase::SetDefaultIndexBuffer(CGraphicBase::DEFAULT_IB_FILL_RECT);
|
||||
|
||||
STATEMANAGER.SetTexture(0, pTexture->GetD3DTexture());
|
||||
STATEMANAGER.SetTexture(1, NULL);
|
||||
STATEMANAGER.SetVertexShader(D3DFVF_XYZ|D3DFVF_DIFFUSE|D3DFVF_TEX1);
|
||||
STATEMANAGER.DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 4, 0, 2);
|
||||
//OLD: STATEMANAGER.DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST, 0, 4, 2, c_FillRectIndices, D3DFMT_INDEX16, vertices, sizeof(TPDTVertex));
|
||||
}
|
||||
}
|
||||
|
||||
const CGraphicTexture & CGraphicMarkInstance::GetTextureReference() const
|
||||
{
|
||||
return m_roImage->GetTextureReference();
|
||||
}
|
||||
|
||||
CGraphicTexture * CGraphicMarkInstance::GetTexturePointer()
|
||||
{
|
||||
return m_roImage->GetTexturePointer();
|
||||
}
|
||||
|
||||
CGraphicImage * CGraphicMarkInstance::GetGraphicImagePointer()
|
||||
{
|
||||
return m_roImage.GetPointer();
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::SetScale(float fScale)
|
||||
{
|
||||
m_fScale=fScale;
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::SetIndex(UINT uIndex)
|
||||
{
|
||||
m_uIndex=uIndex;
|
||||
}
|
||||
|
||||
int CGraphicMarkInstance::GetWidth()
|
||||
{
|
||||
if (IsEmpty())
|
||||
return 0;
|
||||
|
||||
//return m_roImage->GetWidth();
|
||||
return 16;
|
||||
}
|
||||
|
||||
int CGraphicMarkInstance::GetHeight()
|
||||
{
|
||||
if (IsEmpty())
|
||||
return 0;
|
||||
|
||||
//return m_roImage->GetHeight();
|
||||
return 12;
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::SetDiffuseColor(float fr, float fg, float fb, float fa)
|
||||
{
|
||||
m_DiffuseColor.r = fr;
|
||||
m_DiffuseColor.g = fg;
|
||||
m_DiffuseColor.b = fb;
|
||||
m_DiffuseColor.a = fa;
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::SetPosition(float fx, float fy)
|
||||
{
|
||||
m_v2Position.x = fx;
|
||||
m_v2Position.y = fy;
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::Load()
|
||||
{
|
||||
if (GetImageFileName().empty())
|
||||
return;
|
||||
|
||||
CResource * pResource = CResourceManager::Instance().GetResourcePointer(GetImageFileName().c_str());
|
||||
|
||||
if (!pResource)
|
||||
{
|
||||
TraceError("CGraphicMarkinstance::Load - [%s] NOT EXIST", GetImageFileName().c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
if (pResource->IsType(CGraphicImage::Type()))
|
||||
SetImagePointer(static_cast<CGraphicImage*>(pResource));
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::SetImagePointer(CGraphicImage * pImage)
|
||||
{
|
||||
m_roImage.SetPointer(pImage);
|
||||
|
||||
OnSetImagePointer();
|
||||
}
|
||||
|
||||
bool CGraphicMarkInstance::IsEmpty() const
|
||||
{
|
||||
if (!m_roImage.IsNull() && !m_roImage->IsEmpty())
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CGraphicMarkInstance::operator == (const CGraphicMarkInstance & rhs) const
|
||||
{
|
||||
return (m_roImage.GetPointer() == rhs.m_roImage.GetPointer());
|
||||
}
|
||||
|
||||
DWORD CGraphicMarkInstance::Type()
|
||||
{
|
||||
static DWORD s_dwType = GetCRC32("CGraphicMarkInstance", strlen("CGraphicMarkInstance"));
|
||||
return (s_dwType);
|
||||
}
|
||||
|
||||
BOOL CGraphicMarkInstance::IsType(DWORD dwType)
|
||||
{
|
||||
return OnIsType(dwType);
|
||||
}
|
||||
|
||||
BOOL CGraphicMarkInstance::OnIsType(DWORD dwType)
|
||||
{
|
||||
if (CGraphicMarkInstance::Type() == dwType)
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::OnSetImagePointer()
|
||||
{
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::Initialize()
|
||||
{
|
||||
m_DiffuseColor.r = m_DiffuseColor.g = m_DiffuseColor.b = m_DiffuseColor.a = 1.0f;
|
||||
m_v2Position.x = m_v2Position.y = 0.0f;
|
||||
m_uIndex = 0;
|
||||
m_fScale = 1.0f;
|
||||
}
|
||||
|
||||
void CGraphicMarkInstance::Destroy()
|
||||
{
|
||||
m_roImage.SetPointer(NULL); // CRef 에서 레퍼런스 카운트가 떨어져야 함.
|
||||
Initialize();
|
||||
}
|
||||
|
||||
CGraphicMarkInstance::CGraphicMarkInstance()
|
||||
{
|
||||
Initialize();
|
||||
}
|
||||
|
||||
CGraphicMarkInstance::~CGraphicMarkInstance()
|
||||
{
|
||||
Destroy();
|
||||
}
|
||||
Reference in New Issue
Block a user