mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-04-16 01:55:21 +03:00
feat(gx): add device states to d3d backend
This commit is contained in:
parent
dad7f47b1d
commit
5738079891
@ -227,6 +227,10 @@ CGxDeviceD3d::CGxDeviceD3d() : CGxDevice() {
|
||||
|
||||
// TODO
|
||||
|
||||
memset(this->m_deviceStates, 0xFF, sizeof(this->m_deviceStates));
|
||||
|
||||
// TODO
|
||||
|
||||
this->DeviceCreatePools();
|
||||
this->DeviceCreateStreamBufs();
|
||||
}
|
||||
|
@ -1,13 +1,200 @@
|
||||
#ifndef GX_D3D_C_GX_DEVICE_D3D_HPP
|
||||
#define GX_D3D_C_GX_DEVICE_D3D_HPP
|
||||
|
||||
#include "gx/CGxDevice.hpp"
|
||||
#include "gx/CGxDevice.hpp"
|
||||
#include <cstdint>
|
||||
#include <d3d9.h>
|
||||
#include <windows.h>
|
||||
|
||||
class CGxDeviceD3d : public CGxDevice {
|
||||
public:
|
||||
// Types
|
||||
enum EDeviceState {
|
||||
Ds_SrcBlend,
|
||||
Ds_DstBlend,
|
||||
Ds_TssMagFilter0,
|
||||
Ds_TssMagFilter1,
|
||||
Ds_TssMagFilter2,
|
||||
Ds_TssMagFilter3,
|
||||
Ds_TssMagFilter4,
|
||||
Ds_TssMagFilter5,
|
||||
Ds_TssMagFilter6,
|
||||
Ds_TssMagFilter7,
|
||||
Ds_TssMagFilter8,
|
||||
Ds_TssMagFilter9,
|
||||
Ds_TssMagFilter10,
|
||||
Ds_TssMagFilter11,
|
||||
Ds_TssMagFilter12,
|
||||
Ds_TssMagFilter13,
|
||||
Ds_TssMagFilter14,
|
||||
Ds_TssMagFilter15,
|
||||
Ds_TssMinFilter0,
|
||||
Ds_TssMinFilter1,
|
||||
Ds_TssMinFilter2,
|
||||
Ds_TssMinFilter3,
|
||||
Ds_TssMinFilter4,
|
||||
Ds_TssMinFilter5,
|
||||
Ds_TssMinFilter6,
|
||||
Ds_TssMinFilter7,
|
||||
Ds_TssMinFilter8,
|
||||
Ds_TssMinFilter9,
|
||||
Ds_TssMinFilter10,
|
||||
Ds_TssMinFilter11,
|
||||
Ds_TssMinFilter12,
|
||||
Ds_TssMinFilter13,
|
||||
Ds_TssMinFilter14,
|
||||
Ds_TssMinFilter15,
|
||||
Ds_TssMipFilter0,
|
||||
Ds_TssMipFilter1,
|
||||
Ds_TssMipFilter2,
|
||||
Ds_TssMipFilter3,
|
||||
Ds_TssMipFilter4,
|
||||
Ds_TssMipFilter5,
|
||||
Ds_TssMipFilter6,
|
||||
Ds_TssMipFilter7,
|
||||
Ds_TssMipFilter8,
|
||||
Ds_TssMipFilter9,
|
||||
Ds_TssMipFilter10,
|
||||
Ds_TssMipFilter11,
|
||||
Ds_TssMipFilter12,
|
||||
Ds_TssMipFilter13,
|
||||
Ds_TssMipFilter14,
|
||||
Ds_TssMipFilter15,
|
||||
Ds_TssWrapU0,
|
||||
Ds_TssWrapU1,
|
||||
Ds_TssWrapU2,
|
||||
Ds_TssWrapU3,
|
||||
Ds_TssWrapU4,
|
||||
Ds_TssWrapU5,
|
||||
Ds_TssWrapU6,
|
||||
Ds_TssWrapU7,
|
||||
Ds_TssWrapU8,
|
||||
Ds_TssWrapU9,
|
||||
Ds_TssWrapU10,
|
||||
Ds_TssWrapU11,
|
||||
Ds_TssWrapU12,
|
||||
Ds_TssWrapU13,
|
||||
Ds_TssWrapU14,
|
||||
Ds_TssWrapU15,
|
||||
Ds_TssWrapV0,
|
||||
Ds_TssWrapV1,
|
||||
Ds_TssWrapV2,
|
||||
Ds_TssWrapV3,
|
||||
Ds_TssWrapV4,
|
||||
Ds_TssWrapV5,
|
||||
Ds_TssWrapV6,
|
||||
Ds_TssWrapV7,
|
||||
Ds_TssWrapV8,
|
||||
Ds_TssWrapV9,
|
||||
Ds_TssWrapV10,
|
||||
Ds_TssWrapV11,
|
||||
Ds_TssWrapV12,
|
||||
Ds_TssWrapV13,
|
||||
Ds_TssWrapV14,
|
||||
Ds_TssWrapV15,
|
||||
Ds_TssTTF0,
|
||||
Ds_TssTTF1,
|
||||
Ds_TssTTF2,
|
||||
Ds_TssTTF3,
|
||||
Ds_TssTTF4,
|
||||
Ds_TssTTF5,
|
||||
Ds_TssTTF6,
|
||||
Ds_TssTTF7,
|
||||
Ds_TssMaxAnisotropy0,
|
||||
Ds_TssMaxAnisotropy1,
|
||||
Ds_TssMaxAnisotropy2,
|
||||
Ds_TssMaxAnisotropy3,
|
||||
Ds_TssMaxAnisotropy4,
|
||||
Ds_TssMaxAnisotropy5,
|
||||
Ds_TssMaxAnisotropy6,
|
||||
Ds_TssMaxAnisotropy7,
|
||||
Ds_TssMaxAnisotropy8,
|
||||
Ds_TssMaxAnisotropy9,
|
||||
Ds_TssMaxAnisotropy10,
|
||||
Ds_TssMaxAnisotropy11,
|
||||
Ds_TssMaxAnisotropy12,
|
||||
Ds_TssMaxAnisotropy13,
|
||||
Ds_TssMaxAnisotropy14,
|
||||
Ds_TssMaxAnisotropy15,
|
||||
Ds_TssTexCoordIndex0,
|
||||
Ds_TssTexCoordIndex1,
|
||||
Ds_TssTexCoordIndex2,
|
||||
Ds_TssTexCoordIndex3,
|
||||
Ds_TssTexCoordIndex4,
|
||||
Ds_TssTexCoordIndex5,
|
||||
Ds_TssTexCoordIndex6,
|
||||
Ds_TssTexCoordIndex7,
|
||||
Ds_TssColorOp0,
|
||||
Ds_TssColorOp1,
|
||||
Ds_TssColorOp2,
|
||||
Ds_TssColorOp3,
|
||||
Ds_TssColorOp4,
|
||||
Ds_TssColorOp5,
|
||||
Ds_TssColorOp6,
|
||||
Ds_TssColorOp7,
|
||||
Ds_TssAlphaOp0,
|
||||
Ds_TssAlphaOp1,
|
||||
Ds_TssAlphaOp2,
|
||||
Ds_TssAlphaOp3,
|
||||
Ds_TssAlphaOp4,
|
||||
Ds_TssAlphaOp5,
|
||||
Ds_TssAlphaOp6,
|
||||
Ds_TssAlphaOp7,
|
||||
Ds_TssColorArg10,
|
||||
Ds_TssColorArg11,
|
||||
Ds_TssColorArg12,
|
||||
Ds_TssColorArg13,
|
||||
Ds_TssColorArg14,
|
||||
Ds_TssColorArg15,
|
||||
Ds_TssColorArg16,
|
||||
Ds_TssColorArg17,
|
||||
Ds_TssColorArg20,
|
||||
Ds_TssColorArg21,
|
||||
Ds_TssColorArg22,
|
||||
Ds_TssColorArg23,
|
||||
Ds_TssColorArg24,
|
||||
Ds_TssColorArg25,
|
||||
Ds_TssColorArg26,
|
||||
Ds_TssColorArg27,
|
||||
Ds_TssAlphaArg10,
|
||||
Ds_TssAlphaArg11,
|
||||
Ds_TssAlphaArg12,
|
||||
Ds_TssAlphaArg13,
|
||||
Ds_TssAlphaArg14,
|
||||
Ds_TssAlphaArg15,
|
||||
Ds_TssAlphaArg16,
|
||||
Ds_TssAlphaArg17,
|
||||
Ds_TssAlphaArg20,
|
||||
Ds_TssAlphaArg21,
|
||||
Ds_TssAlphaArg22,
|
||||
Ds_TssAlphaArg23,
|
||||
Ds_TssAlphaArg24,
|
||||
Ds_TssAlphaArg25,
|
||||
Ds_TssAlphaArg26,
|
||||
Ds_TssAlphaArg27,
|
||||
Ds_AmbientMaterialSource,
|
||||
Ds_DiffuseMaterialSource,
|
||||
Ds_SpecularMaterialSource,
|
||||
Ds_EmissiveMaterialSource,
|
||||
Ds_Ambient,
|
||||
Ds_AlphaBlendEnable,
|
||||
Ds_AlphaTestEnable,
|
||||
Ds_AlphaRef,
|
||||
Ds_FogEnable,
|
||||
Ds_ZWriteEnable,
|
||||
Ds_ColorWriteEnable,
|
||||
Ds_Lighting,
|
||||
Ds_SpecularEnable,
|
||||
Ds_CullMode,
|
||||
Ds_ClipPlaneEnable,
|
||||
Ds_ZFunc,
|
||||
Ds_PointScaleA,
|
||||
Ds_PointScaleB,
|
||||
Ds_PointScaleC,
|
||||
Ds_PointScaleEnable,
|
||||
DeviceStates_Last,
|
||||
};
|
||||
|
||||
// Static variables
|
||||
static D3DFORMAT s_GxFormatToD3dFormat[];
|
||||
static D3DFORMAT s_GxTexFmtToD3dFmt[];
|
||||
@ -29,6 +216,7 @@ class CGxDeviceD3d : public CGxDevice {
|
||||
D3DCAPS9 m_d3dCaps;
|
||||
int32_t m_d3dIsHwDevice = 0;
|
||||
D3DDISPLAYMODE m_desktopDisplayMode;
|
||||
uint32_t m_deviceStates[DeviceStates_Last];
|
||||
|
||||
// Virtual member functions
|
||||
virtual void ITexMarkAsUpdated(CGxTex* texId);
|
||||
|
Loading…
Reference in New Issue
Block a user