Mercurial > mm7
diff Render.h @ 2410:2d3c3d1dff0c
added RenderStruct.h
author | Ritor1 |
---|---|
date | Tue, 15 Jul 2014 15:44:45 +0600 |
parents | 82512695b45d |
children | 1d04e48651d4 |
line wrap: on
line diff
--- a/Render.h Mon Jul 14 19:48:47 2014 +0600 +++ b/Render.h Tue Jul 15 15:44:45 2014 +0600 @@ -5,282 +5,10 @@ #include "lib\legacy_dx\d3d.h" #include "OSWindow.h" +#include "RenderStruct.h" #include "VectorTypes.h" - -#define ErrD3D(hr) \ - do \ - { \ - extern void ErrHR(HRESULT, const char *, const char *, const char *, int); \ - ErrHR(hr, "Direct3D", __FUNCTION__, __FILE__, __LINE__); \ - } while(0) - -struct Polygon; -struct Texture; -struct RGBTexture; -struct RenderBillboardTransform_local0; -struct ODMFace; - - -unsigned __int16 Color16(unsigned __int32 r, unsigned __int32 g, unsigned __int32 b); -unsigned __int32 Color32(unsigned __int16 color16); - -/* 119 */ -#pragma pack(push, 1) -struct RenderVertexSoft -{ - inline RenderVertexSoft(): - flt_2C(0.0f) - {} - - Vec3_float_ vWorldPosition; - Vec3_float_ vWorldViewPosition; - float vWorldViewProjX; - float vWorldViewProjY; - float _rhw; - float u; - float v; - float flt_2C; -}; -#pragma pack(pop) - - - -/* 112 */ -#pragma pack(push, 1) -struct RenderVertexD3D3 -{ - Vec3_float_ pos; - float rhw; - signed int diffuse; - unsigned int specular; - Vec2_float_ texcoord; -}; -#pragma pack(pop) - -class Sprite; -class SpriteFrame; - -/* 161 */ -#pragma pack(push, 1) -struct RenderBillboard -{ - int _screenspace_x_scaler_packedfloat; - int _screenspace_y_scaler_packedfloat; - float fov_x; - float fov_y; - union - { - int sZValue; - struct - { - unsigned __int16 object_pid; - signed __int16 actual_z; - }; - }; - int field_14_actor_id; - signed __int16 HwSpriteID; - __int16 uPalette; - __int16 uIndoorSectorID; - __int16 field_1E; - __int16 world_x; - __int16 world_y; - __int16 world_z; - __int16 uScreenSpaceX; - __int16 uScreenSpaceY; - unsigned __int16 dimming_level; - signed int sTintColor; - SpriteFrame *pSpriteFrame; - - inline float GetFloatZ() const - { - return (float)object_pid / 65535.0f + (float)actual_z; - } -}; -#pragma pack(pop) - - -#pragma pack(push, 1) -struct RenderD3D__DevInfo -{ - unsigned int bIsDeviceCompatible; - char *pName; - char *pDescription; - GUID *pGUID; - unsigned int uCaps; - char *pDriverName; - char *pDeviceDesc; - char *pDDraw4DevDesc; - GUID *pDirectDrawGUID; - int uVideoMem; -}; -#pragma pack(pop) - - - -#pragma pack(push, 1) -struct RenderD3D_D3DDevDesc -{ - int field_0; - int field_4; - int field_8; - int field_C; - int field_10; - char *pDriverName; - char *pDeviceDesc; - char *pDDraw4DevDesc; - GUID *pGUID; - unsigned int uVideoMem; -}; -#pragma pack(pop) - - - - - - - - - -/* 280 */ -#pragma pack(push, 1) -struct HWLTexture -{ - inline HWLTexture(): - field_0(0), field_4(0), field_8(0), - field_C(0), field_10(0), field_14(0) - {} - - int field_0; - int field_4; - int field_8; - int field_C; - int field_10; - int field_14; - int uBufferWidth; - int uBufferHeight; - int uAreaWidth; - int uAreaHeigth; - unsigned int uWidth; - unsigned int uHeight; - int uAreaX; - int uAreaY; - unsigned __int16 *pPixels; -}; -#pragma pack(pop) - - -/* 185 */ -#pragma pack(push, 1) -struct RenderHWLContainer -{ - RenderHWLContainer(); - bool Load(const wchar_t *pFilename); - bool Release(); - - HWLTexture *LoadTexture(const char *pName, int bMipMaps); - - FILE *pFile; - uint32_t uSignature; - unsigned int uDataOffset; - unsigned int uNumItems; - char *pSpriteNames[50000]; - int pSpriteOffsets[50000]; - int bDumpDebug; - int scale_hwls_to_half; -}; -#pragma pack(pop) - - - -/* 242 */ -#pragma pack(push, 1) -struct RenderBillboardD3D -{ - inline RenderBillboardD3D(): - opacity(Transparent), - field_90(-1), - sParentBillboardID(-1), - uNumVertices(4) - {} - - enum OpacityType: unsigned __int32 - { - Transparent = 0, - Opaque_1 = 1, - Opaque_2 = 2, - Opaque_3 = 3, - NoBlend = 0xFFFFFFFF - }; - - IDirect3DTexture2 *pTexture; - unsigned int uNumVertices; - RenderVertexD3D3 pQuads[4]; - float z_order; - OpacityType opacity; - int field_90; - int sZValue; - signed int sParentBillboardID; -}; -#pragma pack(pop) - - - - -#pragma pack(push, 1) -struct RenderD3D_aux -{ - RenderD3D__DevInfo *pInfo; - RenderD3D_D3DDevDesc *ptr_4; -}; -#pragma pack(pop) - - - -/* 183 */ -#pragma pack(push, 1) -class RenderD3D -{ -public: - RenderD3D(); - - void GetAvailableDevices(RenderD3D__DevInfo **pOutDevices); - void Release(); - bool CreateDevice(unsigned int uDeviceID, int bWindowed, OSWindow *window); - unsigned int GetDeviceCaps(); - void ClearTarget(unsigned int bClearColor, unsigned int uClearColor, unsigned int bClearDepth, float z_clear); - void Present(bool bForceBlit); - bool CreateTexture(unsigned int uTextureWidth, unsigned int uTextureHeight, IDirectDrawSurface4 **pOutSurface, IDirect3DTexture2 **pOutTexture, bool bAlphaChannel, bool bMipmaps, unsigned int uMinDeviceTexDim); - void HandleLostResources(); - - - unsigned int bWindowed; - int field_4; - int field_8; - HWND hWindow; - int field_10; - int field_14; - int field_18; - RenderD3D__DevInfo *pAvailableDevices; - IDirectDraw4 *pHost; - IDirect3D3 *pDirect3D; - IUnknown *pUnk; - IDirectDrawSurface4 *pBackBuffer; - IDirectDrawSurface4 *pFrontBuffer; - IDirectDrawSurface4 *pZBuffer; - IDirect3DDevice3 *pDevice; - IDirect3DViewport3 *pViewport; - int field_40; - int field_44; - char pErrorMessage[48]; - char field_78[208]; -}; -#pragma pack(pop) -extern struct RenderVertexD3D3 pVertices[50]; - -/* 182 */ -#pragma pack(push, 1) struct Render { Render(); @@ -539,67 +267,3 @@ //int windowed_mode_width; //int windowed_mode_height; }; -#pragma pack(pop) - -bool PauseGameDrawing(); - -extern struct IDirectDrawClipper *pDDrawClipper; -extern struct Render *pRenderer; // idb -extern struct pUnkTerrain *Unks; - - - -/* 248 */ -#pragma pack(push, 1) -struct RenderBillboardTransform_local0 -{ - void *pTarget; - int *pTargetZ; - int uScreenSpaceX; - int uScreenSpaceY; - int _screenspace_x_scaler_packedfloat; - int _screenspace_y_scaler_packedfloat; - char field_18[8]; - unsigned __int16 *pPalette; - unsigned __int16 *pPalette2; - union - { - int sZValue; - struct - { - unsigned short object_pid; - short zbuffer_depth; - }; - }; - unsigned int uFlags; // & 4 - mirror horizontally - unsigned int uTargetPitch; - unsigned int uViewportX; - unsigned int uViewportY; - unsigned int uViewportZ; - unsigned int uViewportW; - int field_44; - int sParentBillboardID; - int sTintColor; -}; -#pragma pack(pop) - - - - -extern int uNumDecorationsDrawnThisFrame; // weak -extern RenderBillboard pBillboardRenderList[500]; -extern unsigned int uNumBillboardsToDraw; -extern int uNumSpritesDrawnThisFrame; // weak - - - - -extern RenderVertexSoft array_507D30[50]; -extern RenderVertexSoft array_50AC10[50]; -extern RenderVertexSoft array_73D150[20]; - -extern RenderVertexD3D3 d3d_vertex_buffer[50]; - - -int ODM_NearClip(unsigned int uVertexID); // idb -int ODM_FarClip(unsigned int uNumVertices); \ No newline at end of file