mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
Fix re-creating of textures.
Safer setting of mag filter, especially for anisotripic filtering. Allow aux buffers. Remove old debug code.
This commit is contained in:
parent
e3cd187cef
commit
d0bafd0bc2
@ -254,14 +254,23 @@ apply_texture(int i, TextureContext *tc) {
|
|||||||
set_sampler_state(i, D3DSAMP_MAXANISOTROPY, aniso_degree);
|
set_sampler_state(i, D3DSAMP_MAXANISOTROPY, aniso_degree);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int supports_anisotropic_mag_filter;
|
||||||
D3DTEXTUREFILTERTYPE new_mag_filter;
|
D3DTEXTUREFILTERTYPE new_mag_filter;
|
||||||
if (aniso_degree <= 1) {
|
|
||||||
|
supports_anisotropic_mag_filter = (_screen -> _d3dcaps.TextureFilterCaps & D3DPTFILTERCAPS_MAGFANISOTROPIC) != 0;
|
||||||
|
if (aniso_degree <= 1 || supports_anisotropic_mag_filter == 0) {
|
||||||
new_mag_filter = ((ft != Texture::FT_nearest) ? D3DTEXF_LINEAR : D3DTEXF_POINT);
|
new_mag_filter = ((ft != Texture::FT_nearest) ? D3DTEXF_LINEAR : D3DTEXF_POINT);
|
||||||
} else {
|
} else {
|
||||||
new_mag_filter = D3DTEXF_ANISOTROPIC;
|
new_mag_filter = D3DTEXF_ANISOTROPIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
set_sampler_state(i, D3DSAMP_MAGFILTER, new_mag_filter);
|
HRESULT hr;
|
||||||
|
hr = set_sampler_state(i, D3DSAMP_MAGFILTER, new_mag_filter);
|
||||||
|
if (hr != D3D_OK) {
|
||||||
|
dxgsg9_cat.error()
|
||||||
|
<< "ERROR: set_sampler_state (D3DSAMP_MAGFILTER, "
|
||||||
|
<< new_mag_filter << ") failed for texture:" << tex -> get_name() << endl;
|
||||||
|
}
|
||||||
|
|
||||||
// map Panda composite min+mip filter types to d3d's separate min & mip filter types
|
// map Panda composite min+mip filter types to d3d's separate min & mip filter types
|
||||||
D3DTEXTUREFILTERTYPE new_min_filter = get_d3d_min_type(tex->get_minfilter(),
|
D3DTEXTUREFILTERTYPE new_min_filter = get_d3d_min_type(tex->get_minfilter(),
|
||||||
@ -343,6 +352,8 @@ upload_texture(DXTextureContext9 *dtc, bool force) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dtc->delete_texture();
|
||||||
|
|
||||||
if (_incomplete_render && !force) {
|
if (_incomplete_render && !force) {
|
||||||
bool has_image = _supports_compressed_texture ? tex->has_ram_image() : tex->has_uncompressed_ram_image();
|
bool has_image = _supports_compressed_texture ? tex->has_ram_image() : tex->has_uncompressed_ram_image();
|
||||||
if (!has_image && tex->might_have_ram_image() &&
|
if (!has_image && tex->might_have_ram_image() &&
|
||||||
@ -455,8 +466,6 @@ apply_vertex_buffer(VertexBufferContext *vbc,
|
|||||||
string name) {
|
string name) {
|
||||||
DXVertexBufferContext9 *dvbc = DCAST(DXVertexBufferContext9, vbc);
|
DXVertexBufferContext9 *dvbc = DCAST(DXVertexBufferContext9, vbc);
|
||||||
|
|
||||||
DBG_SH3 dxgsg9_cat.debug ( ) << "apply_vertex_buffer\n"; DBG_E
|
|
||||||
|
|
||||||
bool set_stream_source;
|
bool set_stream_source;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
UINT stream;
|
UINT stream;
|
||||||
@ -592,6 +601,21 @@ apply_vertex_buffer(VertexBufferContext *vbc,
|
|||||||
dxgsg9_cat.error()
|
dxgsg9_cat.error()
|
||||||
<< "CreateVertexDeclaration failed"
|
<< "CreateVertexDeclaration failed"
|
||||||
<< D3DERRORSTRING(hr);
|
<< D3DERRORSTRING(hr);
|
||||||
|
|
||||||
|
if (0) {
|
||||||
|
// DEBUG
|
||||||
|
printf ("TOTAL ELEMENTS: %d \n", vertex_element_array -> total_elements);
|
||||||
|
for (index = 0; index < vertex_element_array -> total_elements; index++)
|
||||||
|
{
|
||||||
|
DIRECT_3D_VERTEX_ELEMENT *vertex_element;
|
||||||
|
VERTEX_ELEMENT_TYPE *vertex_element_type;
|
||||||
|
|
||||||
|
vertex_element = &vertex_element_array -> vertex_element_array [index];
|
||||||
|
vertex_element_type = &vertex_element_array -> vertex_element_type_array [index];
|
||||||
|
|
||||||
|
printf (" index %d Stream %d Offset %d Type %d Method %d Usage %d UsageIndex %d \n", index, vertex_element -> Stream, vertex_element -> Offset, vertex_element -> Type, vertex_element -> Method, vertex_element -> Usage, vertex_element -> UsageIndex);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dvbc -> _shader_context = shader_context;
|
dvbc -> _shader_context = shader_context;
|
||||||
@ -614,9 +638,6 @@ apply_vertex_buffer(VertexBufferContext *vbc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (dvbc -> _direct_3d_vertex_declaration) {
|
if (dvbc -> _direct_3d_vertex_declaration) {
|
||||||
|
|
||||||
DBG_SH5 dxgsg9_cat.debug() << "SetVertexDeclaration ( ) \n"; DBG_E
|
|
||||||
|
|
||||||
hr = _d3d_device -> SetVertexDeclaration (dvbc -> _direct_3d_vertex_declaration);
|
hr = _d3d_device -> SetVertexDeclaration (dvbc -> _direct_3d_vertex_declaration);
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
dxgsg9_cat.error()
|
dxgsg9_cat.error()
|
||||||
@ -830,8 +851,6 @@ clear(DrawableRegion *clearable) {
|
|||||||
float depth_clear_value = clearable->get_clear_depth();
|
float depth_clear_value = clearable->get_clear_depth();
|
||||||
DWORD stencil_clear_value = (DWORD)(clearable->get_clear_stencil());
|
DWORD stencil_clear_value = (DWORD)(clearable->get_clear_stencil());
|
||||||
|
|
||||||
DBG_S dxgsg9_cat.debug ( ) << "DXGraphicsStateGuardian9::do_clear\n"; DBG_E
|
|
||||||
|
|
||||||
//set appropriate flags
|
//set appropriate flags
|
||||||
if (clearable->get_clear_color_active()) {
|
if (clearable->get_clear_color_active()) {
|
||||||
main_flags |= D3DCLEAR_TARGET;
|
main_flags |= D3DCLEAR_TARGET;
|
||||||
@ -847,19 +866,10 @@ clear(DrawableRegion *clearable) {
|
|||||||
if (_screen->_presentation_params.EnableAutoDepthStencil &&
|
if (_screen->_presentation_params.EnableAutoDepthStencil &&
|
||||||
IS_STENCIL_FORMAT(_screen->_presentation_params.AutoDepthStencilFormat)) {
|
IS_STENCIL_FORMAT(_screen->_presentation_params.AutoDepthStencilFormat)) {
|
||||||
aux_flags |= D3DCLEAR_STENCIL;
|
aux_flags |= D3DCLEAR_STENCIL;
|
||||||
|
|
||||||
// DEBUG
|
|
||||||
if (false) {
|
|
||||||
dxgsg9_cat.debug ( ) << "STENCIL CLEAR " << stencil_clear_value << "\n";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((main_flags | aux_flags) != 0) {
|
if ((main_flags | aux_flags) != 0) {
|
||||||
|
|
||||||
DBG_S dxgsg9_cat.debug ( ) << "ccccc DXGraphicsStateGuardian9::really do_clear\n"; DBG_E
|
|
||||||
DBG_S dxgsg9_cat.debug ( ) << "clear flags: main " << main_flags << " aux :" << aux_flags << "\n"; DBG_E
|
|
||||||
|
|
||||||
HRESULT hr = _d3d_device->Clear(0, NULL, main_flags | aux_flags, color_clear_value,
|
HRESULT hr = _d3d_device->Clear(0, NULL, main_flags | aux_flags, color_clear_value,
|
||||||
depth_clear_value, stencil_clear_value);
|
depth_clear_value, stencil_clear_value);
|
||||||
if (FAILED(hr) && main_flags == D3DCLEAR_TARGET && aux_flags != 0) {
|
if (FAILED(hr) && main_flags == D3DCLEAR_TARGET && aux_flags != 0) {
|
||||||
@ -914,15 +924,9 @@ prepare_display_region(DisplayRegionPipelineReader *dr,
|
|||||||
nassertv(dr != (DisplayRegionPipelineReader *)NULL);
|
nassertv(dr != (DisplayRegionPipelineReader *)NULL);
|
||||||
GraphicsStateGuardian::prepare_display_region(dr, stereo_channel);
|
GraphicsStateGuardian::prepare_display_region(dr, stereo_channel);
|
||||||
|
|
||||||
// DBG_S dxgsg9_cat.debug ( ) << "DXGraphicsStateGuardian9::PRE prepare_display_region\n"; DBG_E
|
|
||||||
|
|
||||||
// DBG_S dxgsg9_cat.debug ( ) << "DXGraphicsStateGuardian9::prepare_display_region\n"; DBG_E
|
|
||||||
|
|
||||||
int l, u, w, h;
|
int l, u, w, h;
|
||||||
dr->get_region_pixels_i(l, u, w, h);
|
dr->get_region_pixels_i(l, u, w, h);
|
||||||
|
|
||||||
DBG_S dxgsg9_cat.debug ( ) << "display_region " << l << " " << u << " " << w << " " << h << "\n"; DBG_E;
|
|
||||||
|
|
||||||
// Create the viewport
|
// Create the viewport
|
||||||
D3DVIEWPORT9 vp = { l, u, w, h, 0.0f, 1.0f };
|
D3DVIEWPORT9 vp = { l, u, w, h, 0.0f, 1.0f };
|
||||||
_current_viewport = vp;
|
_current_viewport = vp;
|
||||||
@ -1034,8 +1038,6 @@ prepare_lens() {
|
|||||||
bool DXGraphicsStateGuardian9::
|
bool DXGraphicsStateGuardian9::
|
||||||
begin_frame(Thread *current_thread) {
|
begin_frame(Thread *current_thread) {
|
||||||
|
|
||||||
DBG_S dxgsg9_cat.debug ( ) << "^^^^^^^^^^^ begin_frame \n"; DBG_E
|
|
||||||
|
|
||||||
GraphicsStateGuardian::begin_frame(current_thread);
|
GraphicsStateGuardian::begin_frame(current_thread);
|
||||||
|
|
||||||
if (_d3d_device == NULL) {
|
if (_d3d_device == NULL) {
|
||||||
@ -1088,8 +1090,6 @@ begin_scene() {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
DBG_S dxgsg9_cat.debug ( ) << "DXGraphicsStateGuardian9::begin_scene\n"; DBG_E
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
HRESULT hr = _d3d_device->BeginScene();
|
HRESULT hr = _d3d_device->BeginScene();
|
||||||
|
|
||||||
@ -1144,8 +1144,6 @@ end_scene() {
|
|||||||
_current_shader_context = (CLP(ShaderContext) *)NULL;
|
_current_shader_context = (CLP(ShaderContext) *)NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
DBG_S dxgsg9_cat.debug ( ) << "DXGraphicsStateGuardian9::end_scene\n"; DBG_E
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
HRESULT hr = _d3d_device->EndScene();
|
HRESULT hr = _d3d_device->EndScene();
|
||||||
|
|
||||||
@ -1178,8 +1176,6 @@ DBG_S dxgsg9_cat.debug ( ) << "DXGraphicsStateGuardian9::end_scene\n"; DBG_E
|
|||||||
void DXGraphicsStateGuardian9::
|
void DXGraphicsStateGuardian9::
|
||||||
end_frame(Thread *current_thread) {
|
end_frame(Thread *current_thread) {
|
||||||
|
|
||||||
DBG_S dxgsg9_cat.debug ( ) << "@@@@@@@@@@ end_frame \n"; DBG_E
|
|
||||||
|
|
||||||
HRESULT hr = _d3d_device->EndScene();
|
HRESULT hr = _d3d_device->EndScene();
|
||||||
|
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
@ -1236,8 +1232,6 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader,
|
|||||||
}
|
}
|
||||||
nassertr(_data_reader != (GeomVertexDataPipelineReader *)NULL, false);
|
nassertr(_data_reader != (GeomVertexDataPipelineReader *)NULL, false);
|
||||||
|
|
||||||
DBG_SH5 dxgsg9_cat.debug ( ) << "begin_draw_primitives\n"; DBG_E
|
|
||||||
|
|
||||||
string name;
|
string name;
|
||||||
const Geom *geom;
|
const Geom *geom;
|
||||||
|
|
||||||
@ -1304,14 +1298,6 @@ begin_draw_primitives(const GeomPipelineReader *geom_reader,
|
|||||||
const GeomVertexArrayFormat *array_format = data->get_array_format();
|
const GeomVertexArrayFormat *array_format = data->get_array_format();
|
||||||
int number_of_columns = array_format->get_num_columns();
|
int number_of_columns = array_format->get_num_columns();
|
||||||
|
|
||||||
DBG_VEA
|
|
||||||
dxgsg9_cat.debug ( )
|
|
||||||
<< " data index " << index
|
|
||||||
<< " number_of_columns " << number_of_columns
|
|
||||||
<< " vertex_element_array -> total_elements " << vertex_element_array -> total_elements
|
|
||||||
<< "\n";
|
|
||||||
DBG_E
|
|
||||||
|
|
||||||
if (number_of_columns >= vertex_element_array -> total_elements) {
|
if (number_of_columns >= vertex_element_array -> total_elements) {
|
||||||
if (first_index >= 0) {
|
if (first_index >= 0) {
|
||||||
multiple_matches = true;
|
multiple_matches = true;
|
||||||
@ -1483,8 +1469,6 @@ bool DXGraphicsStateGuardian9::
|
|||||||
draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) {
|
draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) {
|
||||||
PStatTimer timer(_draw_primitive_pcollector);
|
PStatTimer timer(_draw_primitive_pcollector);
|
||||||
|
|
||||||
// DBG_SH5 dxgsg9_cat.debug ( ) << "draw_triangles 1\n"; DBG_E
|
|
||||||
|
|
||||||
_vertices_tri_pcollector.add_level(reader->get_num_vertices());
|
_vertices_tri_pcollector.add_level(reader->get_num_vertices());
|
||||||
_primitive_batches_tri_pcollector.add_level(1);
|
_primitive_batches_tri_pcollector.add_level(1);
|
||||||
if (reader->is_indexed()) {
|
if (reader->is_indexed()) {
|
||||||
@ -1499,8 +1483,6 @@ draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//DBG_SH2 dxgsg9_cat.debug ( ) << "DrawIndexedPrimitive \n"; DBG_E
|
|
||||||
|
|
||||||
_d3d_device->DrawIndexedPrimitive
|
_d3d_device->DrawIndexedPrimitive
|
||||||
(D3DPT_TRIANGLELIST, 0,
|
(D3DPT_TRIANGLELIST, 0,
|
||||||
min_vertex, max_vertex - min_vertex + 1,
|
min_vertex, max_vertex - min_vertex + 1,
|
||||||
@ -1509,8 +1491,6 @@ draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) {
|
|||||||
} else {
|
} else {
|
||||||
// Indexed, client arrays.
|
// Indexed, client arrays.
|
||||||
|
|
||||||
//DBG_SH2 dxgsg9_cat.debug ( ) << "draw_indexed_primitive_up \n"; DBG_E
|
|
||||||
|
|
||||||
const unsigned char *index_pointer = reader->get_read_pointer(force);
|
const unsigned char *index_pointer = reader->get_read_pointer(force);
|
||||||
if (index_pointer == NULL) {
|
if (index_pointer == NULL) {
|
||||||
return false;
|
return false;
|
||||||
@ -1532,8 +1512,6 @@ draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) {
|
|||||||
if (_active_vbuffer != NULL) {
|
if (_active_vbuffer != NULL) {
|
||||||
// Nonindexed, vbuffers.
|
// Nonindexed, vbuffers.
|
||||||
|
|
||||||
//DBG_SH2 dxgsg9_cat.debug ( ) << "DrawPrimitive D3DPT_TRIANGLELIST \n"; DBG_E
|
|
||||||
|
|
||||||
_d3d_device->DrawPrimitive
|
_d3d_device->DrawPrimitive
|
||||||
(D3DPT_TRIANGLELIST,
|
(D3DPT_TRIANGLELIST,
|
||||||
reader->get_first_vertex(),
|
reader->get_first_vertex(),
|
||||||
@ -1542,7 +1520,6 @@ draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) {
|
|||||||
} else {
|
} else {
|
||||||
// Nonindexed, client arrays.
|
// Nonindexed, client arrays.
|
||||||
|
|
||||||
//DBG_SH2 dxgsg9_cat.debug ( ) << "draw_primitive_up \n"; DBG_E
|
|
||||||
const unsigned char *vertex_pointer = _data_reader->get_array_reader(0)->get_read_pointer(force);
|
const unsigned char *vertex_pointer = _data_reader->get_array_reader(0)->get_read_pointer(force);
|
||||||
if (vertex_pointer == NULL) {
|
if (vertex_pointer == NULL) {
|
||||||
return false;
|
return false;
|
||||||
@ -1555,7 +1532,6 @@ draw_triangles(const GeomPrimitivePipelineReader *reader, bool force) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// DBG_SH5 dxgsg9_cat.debug ( ) << "end draw_triangles 1\n"; DBG_E
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1568,8 +1544,6 @@ bool DXGraphicsStateGuardian9::
|
|||||||
draw_tristrips(const GeomPrimitivePipelineReader *reader, bool force) {
|
draw_tristrips(const GeomPrimitivePipelineReader *reader, bool force) {
|
||||||
PStatTimer timer(_draw_primitive_pcollector);
|
PStatTimer timer(_draw_primitive_pcollector);
|
||||||
|
|
||||||
DBG_SH5 dxgsg9_cat.debug ( ) << "draw_tristrips\n"; DBG_E
|
|
||||||
|
|
||||||
if (connect_triangle_strips && _current_fill_mode != RenderModeAttrib::M_wireframe) {
|
if (connect_triangle_strips && _current_fill_mode != RenderModeAttrib::M_wireframe) {
|
||||||
// One long triangle strip, connected by the degenerate vertices
|
// One long triangle strip, connected by the degenerate vertices
|
||||||
// that have already been set up within the primitive.
|
// that have already been set up within the primitive.
|
||||||
@ -1755,8 +1729,6 @@ bool DXGraphicsStateGuardian9::
|
|||||||
draw_trifans(const GeomPrimitivePipelineReader *reader, bool force) {
|
draw_trifans(const GeomPrimitivePipelineReader *reader, bool force) {
|
||||||
PStatTimer timer(_draw_primitive_pcollector);
|
PStatTimer timer(_draw_primitive_pcollector);
|
||||||
|
|
||||||
DBG_SH5 dxgsg9_cat.debug ( ) << "draw_trifans\n"; DBG_E
|
|
||||||
|
|
||||||
CPTA_int ends = reader->get_ends();
|
CPTA_int ends = reader->get_ends();
|
||||||
_primitive_batches_trifan_pcollector.add_level(ends.size());
|
_primitive_batches_trifan_pcollector.add_level(ends.size());
|
||||||
|
|
||||||
@ -2269,9 +2241,7 @@ do_framebuffer_copy_to_ram(Texture *tex, int z, const DisplayRegion *dr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Now we must copy from the backbuffer to our temporary surface.
|
// Now we must copy from the backbuffer to our temporary surface.
|
||||||
|
|
||||||
hr = _d3d_device -> GetRenderTargetData (backbuffer, temp_surface);
|
hr = _d3d_device -> GetRenderTargetData (backbuffer, temp_surface);
|
||||||
|
|
||||||
if (FAILED(hr)) {
|
if (FAILED(hr)) {
|
||||||
dxgsg9_cat.error() << "GetRenderTargetData failed" << D3DERRORSTRING(hr);
|
dxgsg9_cat.error() << "GetRenderTargetData failed" << D3DERRORSTRING(hr);
|
||||||
temp_surface->Release();
|
temp_surface->Release();
|
||||||
@ -2316,7 +2286,6 @@ do_framebuffer_copy_to_ram(Texture *tex, int z, const DisplayRegion *dr,
|
|||||||
|
|
||||||
UINT swap_chain;
|
UINT swap_chain;
|
||||||
|
|
||||||
/* ***** DX9 swap chain ??? */
|
|
||||||
swap_chain = 0;
|
swap_chain = 0;
|
||||||
hr = _d3d_device->GetFrontBufferData(swap_chain,temp_surface);
|
hr = _d3d_device->GetFrontBufferData(swap_chain,temp_surface);
|
||||||
|
|
||||||
@ -2504,7 +2473,7 @@ reset() {
|
|||||||
_supports_stencil_wrap = (d3d_caps.StencilCaps & D3DSTENCILCAPS_INCR) && (d3d_caps.StencilCaps & D3DSTENCILCAPS_DECR);
|
_supports_stencil_wrap = (d3d_caps.StencilCaps & D3DSTENCILCAPS_INCR) && (d3d_caps.StencilCaps & D3DSTENCILCAPS_DECR);
|
||||||
_supports_two_sided_stencil = ((d3d_caps.StencilCaps & D3DSTENCILCAPS_TWOSIDED) != 0);
|
_supports_two_sided_stencil = ((d3d_caps.StencilCaps & D3DSTENCILCAPS_TWOSIDED) != 0);
|
||||||
|
|
||||||
_maximum_simultaneuous_render_targets = d3d_caps.NumSimultaneousRTs;
|
_maximum_simultaneous_render_targets = d3d_caps.NumSimultaneousRTs;
|
||||||
|
|
||||||
_supports_depth_bias = ((d3d_caps.RasterCaps & D3DPRASTERCAPS_DEPTHBIAS) != 0);
|
_supports_depth_bias = ((d3d_caps.RasterCaps & D3DPRASTERCAPS_DEPTHBIAS) != 0);
|
||||||
|
|
||||||
@ -2929,8 +2898,6 @@ do_issue_alpha_test() {
|
|||||||
void DXGraphicsStateGuardian9::
|
void DXGraphicsStateGuardian9::
|
||||||
do_issue_shader() {
|
do_issue_shader() {
|
||||||
|
|
||||||
DBG_SH3 dxgsg9_cat.debug ( ) << "SHADER: do_issue_shader\n"; DBG_E
|
|
||||||
|
|
||||||
CLP(ShaderContext) *context = 0;
|
CLP(ShaderContext) *context = 0;
|
||||||
Shader *shader = 0;
|
Shader *shader = 0;
|
||||||
if (_target._shader) {
|
if (_target._shader) {
|
||||||
@ -4157,6 +4124,8 @@ set_read_buffer(const RenderBuffer &rb) {
|
|||||||
_cur_read_pixel_buffer = RenderBuffer::T_front;
|
_cur_read_pixel_buffer = RenderBuffer::T_front;
|
||||||
} else if (rb._buffer_type & RenderBuffer::T_back) {
|
} else if (rb._buffer_type & RenderBuffer::T_back) {
|
||||||
_cur_read_pixel_buffer = RenderBuffer::T_back;
|
_cur_read_pixel_buffer = RenderBuffer::T_back;
|
||||||
|
} else if (rb._buffer_type & RenderBuffer::T_aux_rgba_ALL) {
|
||||||
|
_cur_read_pixel_buffer = RenderBuffer::T_back;
|
||||||
} else {
|
} else {
|
||||||
dxgsg9_cat.error() << "Invalid or unimplemented Argument to set_read_buffer!\n";
|
dxgsg9_cat.error() << "Invalid or unimplemented Argument to set_read_buffer!\n";
|
||||||
}
|
}
|
||||||
@ -4785,17 +4754,6 @@ show_frame() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
DBG_S dxgsg9_cat.debug ( ) << "- - - - - DXGraphicsStateGuardian9::show_frame\n"; DBG_E
|
|
||||||
|
|
||||||
// DEBUG
|
|
||||||
/*
|
|
||||||
EXPCL_DTOOL void reset_memory_stats (void);
|
|
||||||
EXPCL_DTOOL void print_memory_stats (void);
|
|
||||||
|
|
||||||
print_memory_stats ( );
|
|
||||||
reset_memory_stats ( );
|
|
||||||
*/
|
|
||||||
|
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
if (_swap_chain) {
|
if (_swap_chain) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user