25 #if (defined(_M_IX86) || defined(_X86_)) && !defined(STDFLOAT_DOUBLE)
26 DWORD d3dcolor, tempcolorval=255;
32 push ebx ; want to save
this in
case this fn is inlined
38 fistp tempcolorval ; no way to store directly to
int register
42 fld DWORD PTR [ecx+4] ;grn
49 fld DWORD PTR [ecx+8] ;blue
54 fld DWORD PTR [ecx+12] ;alpha
57 ; simulate pop 255.0 off FP stack w/o store, mark top as empty and increment stk ptr
71 return D3DCOLOR_COLORVALUE(cLColor[0], cLColor[1], cLColor[2], cLColor[3]);
81 INLINE D3DTEXTUREADDRESS DXGraphicsStateGuardian9::
82 get_texture_wrap_mode(SamplerState::WrapMode wm) {
84 case SamplerState::WM_clamp:
85 return D3DTADDRESS_CLAMP;
86 case SamplerState::WM_repeat:
87 return D3DTADDRESS_WRAP;
88 case SamplerState::WM_mirror:
89 return D3DTADDRESS_MIRROR;
90 case SamplerState::WM_mirror_once:
91 return D3DTADDRESS_MIRRORONCE;
92 case SamplerState::WM_border_color:
93 return D3DTADDRESS_BORDER;
95 dxgsg9_cat.error() <<
"Invalid Texture::Mode value" << endl;
96 return D3DTADDRESS_WRAP;
104 INLINE D3DFOGMODE DXGraphicsStateGuardian9::
105 get_fog_mode_type(Fog::Mode m) {
108 return D3DFOG_LINEAR;
109 case Fog::M_exponential:
111 case Fog::M_exponential_squared:
114 dxgsg9_cat.error() <<
"Invalid Fog::Mode value" << endl;
123 INLINE D3DTRANSFORMSTATETYPE DXGraphicsStateGuardian9::
124 get_tex_mat_sym(
int stage_index) {
125 return (D3DTRANSFORMSTATETYPE)(D3DTS_TEXTURE0 + stage_index);
134 INLINE
unsigned char *DXGraphicsStateGuardian9::
135 get_safe_buffer_start() {
136 if (_temp_buffer == NULL) {
141 _temp_buffer =
new unsigned char[0x1ffff];
142 _safe_buffer_start = (
unsigned char *)(((
long)_temp_buffer + 0xffff) & ~0xffff);
145 return _safe_buffer_start;
148 #define ALWAYS_SET_RENDER_STATE true
163 if (ALWAYS_SET_RENDER_STATE || _render_state_array [state] != value)
165 hr = _d3d_device->SetRenderState(state, value);
166 _render_state_array [state] = value;
185 if (ALWAYS_SET_RENDER_STATE || _texture_stage_states_array [stage].state_array [type] != value)
187 hr = _d3d_device->SetTextureStageState(stage, type, value);
188 _texture_stage_states_array [stage].state_array [type] = value;
207 if (ALWAYS_SET_RENDER_STATE || _texture_render_states_array [sampler].state_array [type] != value)
209 hr = _d3d_device->SetSamplerState(sampler, type, value);
210 _texture_render_states_array [sampler].state_array [type] = value;
227 return _supports_render_texture;
HRESULT set_sampler_state(DWORD sampler, D3DSAMPLERSTATETYPE type, DWORD value)
This function creates a common layer between DX and Panda.
HRESULT set_texture_stage_state(DWORD stage, D3DTEXTURESTAGESTATETYPE type, DWORD value)
This function creates a common layer between DX and Panda.
bool get_supports_render_texture() const
Returns true if this particular GSG can render from a wdxGraphicsBuffer9 directly into a texture...
This is the base class for all three-component vectors and points.
static DWORD LColor_to_D3DCOLOR(const LColor &cLColor)
Converts Panda's floating-point LColor structure to DirectX's D3DCOLOR packed structure.
HRESULT set_render_state(D3DRENDERSTATETYPE state, DWORD value)
This function creates a common layer between DX and Panda for SetRenderState.