Files
Client/Engine/Zalla3D Scene Class/RenderBoundingBox.cpp
LGram16 e067522598 Initial commit: ROW Client source code
Game client codebase including:
- CharacterActionControl: Character and creature management
- GlobalScript: Network, items, skills, quests, utilities
- RYLClient: Main client application with GUI and event handlers
- Engine: 3D rendering engine (RYLGL)
- MemoryManager: Custom memory allocation
- Library: Third-party dependencies (DirectX, boost, etc.)
- Tools: Development utilities

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 16:24:34 +09:00

93 lines
2.2 KiB
C++

#include "./RenderBoundingBox.h"
#include <d3d8.h>
#include <VECTOR.h>
#include <color.h>
void CRenderBoundingBox::Render(IDirect3DDevice8* pDevice, const vector3 &vMin, const vector3 &vMax)
{
if (NULL == pDevice)
{
return;
}
const long BBRENDER_VERTEX_FVF=D3DFVF_XYZ|D3DFVF_DIFFUSE;
struct BoundingBoxRenderVertex
{
vector3 v;
color diff;
};
static BoundingBoxRenderVertex aBoxVertex[8] =
{
{vector3(0, 0, 0), color(0xff, 0xff, 0xff, 0xff)},
{vector3(0, 0, 0), color(0xff, 0xff, 0xff, 0xff)},
{vector3(0, 0, 0), color(0xff, 0xff, 0xff, 0xff)},
{vector3(0, 0, 0), color(0xff, 0xff, 0xff, 0xff)},
{vector3(0, 0, 0), color(0xff, 0xff, 0xff, 0xff)},
{vector3(0, 0, 0), color(0xff, 0xff, 0xff, 0xff)},
{vector3(0, 0, 0), color(0xff, 0xff, 0xff, 0xff)},
{vector3(0, 0, 0), color(0xff, 0xff, 0xff, 0xff)}
};
static WORD awBoxIndex[24] =
{
0, 1, 1, 3, 3, 2, 2, 0,
4, 5, 5, 7, 7, 6, 6, 4,
0, 4, 1, 5, 3, 7, 2, 6
};
static D3DMATRIX matIdentity =
{
1, 0, 0, 0,
0, 1, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1
};
static D3DMATRIX matStore;
aBoxVertex[0].v.x=vMax.x;
aBoxVertex[0].v.y=vMax.y;
aBoxVertex[0].v.z=vMax.z;
aBoxVertex[1].v.x=vMin.x;
aBoxVertex[1].v.y=vMax.y;
aBoxVertex[1].v.z=vMax.z;
aBoxVertex[2].v.x=vMax.x;
aBoxVertex[2].v.y=vMax.y;
aBoxVertex[2].v.z=vMin.z;
aBoxVertex[3].v.x=vMin.x;
aBoxVertex[3].v.y=vMax.y;
aBoxVertex[3].v.z=vMin.z;
aBoxVertex[4].v.x=vMax.x;
aBoxVertex[4].v.y=vMin.y;
aBoxVertex[4].v.z=vMax.z;
aBoxVertex[5].v.x=vMin.x;
aBoxVertex[5].v.y=vMin.y;
aBoxVertex[5].v.z=vMax.z;
aBoxVertex[6].v.x=vMax.x;
aBoxVertex[6].v.y=vMin.y;
aBoxVertex[6].v.z=vMin.z;
aBoxVertex[7].v.x=vMin.x;
aBoxVertex[7].v.y=vMin.y;
aBoxVertex[7].v.z=vMin.z;
DWORD dwLightingState;
pDevice->GetRenderState(D3DRS_LIGHTING, &dwLightingState);
pDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
// pDevice->GetTransform(D3DTS_WORLD, &matStore);
// pDevice->SetTransform(D3DTS_WORLD, &matIdentity);
pDevice->SetTexture(0, NULL);
pDevice->SetVertexShader(BBRENDER_VERTEX_FVF);
pDevice->DrawIndexedPrimitiveUP(D3DPT_LINELIST, 0, 8, 12, awBoxIndex, D3DFMT_INDEX16, aBoxVertex, sizeof(BoundingBoxRenderVertex));
pDevice->SetRenderState(D3DRS_LIGHTING, dwLightingState);
// pDevice->SetTransform(D3DTS_WORLD, &matStore);
}