76 closure headers (EterBase, EterLocale, EterPack, EterLib, GameLib, MilesLib, EffectLib, SphereLib, EterImageLib) copied by the new port_copy.py (CP949->UTF-8, LF, include-path case only); platform-class headers go to the mirror path too, as the interface platform/ implements. Six manual `// PORT:` edits (Random, Singleton, Pool, Stl, Utils, FlyTarget). - common/D3D8Types.h: D3D8 value types with SDK values/layout, opaque COM interfaces - common/shim/sdk (d3d8/d3dx8/mss) on every platform, common/shim/win32 off Windows - Win32Types/Win32Crt: HRESULT, GUID, LARGE_INTEGER, LOGFONT/TEXTMETRIC, _atoi64, CRITICAL_SECTION on std::recursive_mutex - header gate prepends each library's StdAfx.h (40250's precompiled header) port_gate: macOS, Android, iOS, Windows (mingw) PASS; Linux BLOCKED (no toolchain). ScriptLib/EterPythonLib/UserInterface wait for 2P (their StdAfx includes Python). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
83 lines
3.7 KiB
C++
83 lines
3.7 KiB
C++
#pragma once
|
|
|
|
#include "GrpCollisionObject.h"
|
|
#include "../SphereLib/frustum.h"
|
|
|
|
|
|
class CScreen : public CGraphicCollisionObject
|
|
{
|
|
public:
|
|
CScreen();
|
|
virtual ~CScreen();
|
|
|
|
void ClearDepthBuffer();
|
|
void Clear();
|
|
bool Begin();
|
|
void End();
|
|
void Show(HWND hWnd = NULL);
|
|
void Show(RECT * pSrcRect);
|
|
void Show(RECT * pSrcRect, HWND hWnd);
|
|
|
|
void RenderLine2d(float sx, float sy, float ex, float ey, float z=0.0f);
|
|
void RenderBox2d(float sx, float sy, float ex, float ey, float z=0.0f);
|
|
void RenderBar2d(float sx, float sy, float ex, float ey, float z=0.0f);
|
|
void RenderGradationBar2d(float sx, float sy, float ex, float ey, DWORD dwStartColor, DWORD dwEndColor, float ez=0.0f);
|
|
void RenderCircle2d(float fx, float fy, float fz, float fRadius, int iStep = 50);
|
|
void RenderCircle3d(float fx, float fy, float fz, float fRadius, int iStep = 50);
|
|
|
|
void RenderLine3d(float sx, float sy, float sz, float ex, float ey, float ez);
|
|
void RenderBox3d(float sx, float sy, float sz, float ex, float ey, float ez);
|
|
void RenderBar3d(float sx, float sy, float sz, float ex, float ey, float ez);
|
|
void RenderBar3d(const D3DXVECTOR3 * c_pv3Positions);
|
|
void RenderGradationBar3d(float sx, float sy, float sz, float ex, float ey, float ez, DWORD dwStartColor, DWORD dwEndColor);
|
|
|
|
void RenderLineCube(float sx, float sy, float sz, float ex, float ey, float ez);
|
|
void RenderCube(float sx, float sy, float sz, float ex, float ey, float ez);
|
|
void RenderCube(float sx, float sy, float sz, float ex, float ey, float ez, D3DXMATRIX matRotation);
|
|
void RenderTextureBox(float sx, float sy, float ex, float ey, float z=0.0f, float su=0.0f, float sv=0.0f, float eu=1.0f, float ev=1.0f);
|
|
void RenderBillboard(D3DXVECTOR3 * Position, D3DXCOLOR & Color);
|
|
|
|
void DrawMinorGrid(float xMin, float yMin, float xMax, float yMax, float xminorStep, float yminorStep, float zPos=0);
|
|
void DrawGrid(float xMin, float yMin, float xMax, float yMax, float xmajorStep, float ymajorStep, float xminorStep, float yminorStep, float zPos=0);
|
|
|
|
void RenderD3DXMesh(LPD3DXMESH lpMesh, const D3DXMATRIX * c_pmatWorld, float fx, float fy, float fz, float fRadius, D3DFILLMODE d3dFillMode);
|
|
void RenderSphere(const D3DXMATRIX * c_pmatWorld, float fx, float fy, float fz, float fRadius, D3DFILLMODE d3dFillMode = D3DFILL_SOLID);
|
|
void RenderCylinder(const D3DXMATRIX * c_pmatWorld, float fx, float fy, float fz, float fRadius, float fLength, D3DFILLMODE d3dFillMode = D3DFILL_SOLID);
|
|
|
|
void SetColorOperation();
|
|
void SetDiffuseOperation();
|
|
void SetBlendOperation();
|
|
void SetOneColorOperation(D3DXCOLOR & rColor);
|
|
void SetAddColorOperation(D3DXCOLOR & rColor);
|
|
void SetDiffuseColor(DWORD diffuseColor);
|
|
void SetDiffuseColor(float r, float g, float b, float a=1.0f);
|
|
void SetClearColor(float r, float g, float b, float a=1.0f);
|
|
void SetClearDepth(float depth);
|
|
void SetClearStencil(DWORD stencil);
|
|
|
|
void SetCursorPosition(int x, int y, int hres, int vres); // creates picking ray
|
|
bool GetCursorPosition(float* px, float* py, float* pz);
|
|
bool GetCursorXYPosition(float* px, float* py);
|
|
bool GetCursorZPosition(float* pz);
|
|
void GetPickingPosition(float t, float* x, float* y, float* z);
|
|
void ProjectPosition(float x, float y, float z, float * pfX, float * pfY);
|
|
void ProjectPosition(float x, float y, float z, float * pfX, float * pfY, float * pfZ);
|
|
void UnprojectPosition(float x, float y, float z, float * pfX, float * pfY, float * pfZ);
|
|
|
|
BOOL IsLostDevice();
|
|
BOOL RestoreDevice();
|
|
|
|
void BuildViewFrustum();
|
|
|
|
static void Identity();
|
|
static Frustum & GetFrustum() { return ms_frustum; }
|
|
|
|
protected:
|
|
static DWORD ms_diffuseColor;
|
|
static DWORD ms_clearColor;
|
|
static DWORD ms_clearStencil;
|
|
static float ms_clearDepth;
|
|
|
|
static Frustum ms_frustum;
|
|
};
|