14#ifndef wdxGraphicsBuffer9_H
15#define wdxGraphicsBuffer9_H
29class EXPCL_PANDADX wdxGraphicsBuffer9 :
public GraphicsBuffer {
31 wdxGraphicsBuffer9(GraphicsEngine *engine, GraphicsPipe *pipe,
32 const std::string &name,
37 GraphicsOutput *host);
38 virtual ~wdxGraphicsBuffer9();
56 virtual void close_buffer();
57 virtual bool open_buffer();
60 bool save_bitplanes();
61 bool rebuild_bitplanes();
62 void restore_bitplanes();
63 static void process_1_event();
66 DXGraphicsStateGuardian9 *_dxgsg;
67 IDirect3DSurface9 *_saved_color_buffer;
68 IDirect3DSurface9 *_saved_depth_buffer;
69 D3DSURFACE_DESC _saved_color_desc;
70 D3DSURFACE_DESC _saved_depth_desc;
71 IDirect3DSurface9 *_color_backing_store;
72 IDirect3DSurface9 *_depth_backing_store;
76 wdxGraphicsBuffer9 *_shared_depth_buffer;
77 std::list <wdxGraphicsBuffer9 *> _shared_depth_buffer_list;
79 wdxGraphicsBuffer9 **_this;
85 static void init_type() {
86 GraphicsBuffer::init_type();
88 GraphicsBuffer::get_class_type());
91 return get_class_type();
93 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
99 friend class DXGraphicsStateGuardian9;
100 friend class DXTextureContext9;
A container for the various kinds of properties we might ask to have on a graphics frameBuffer before...
virtual void process_events()
Honor any requests recently made via request_open() or request_close().
virtual void end_frame(FrameMode mode, Thread *current_thread)
This function will be called within the draw thread after rendering is completed for a given frame.
virtual bool share_depth_buffer(GraphicsOutput *graphics_output)
Will attempt to use the depth buffer of the input graphics_output.
virtual void unshare_depth_buffer()
Discontinue sharing the depth buffer.
get_supports_render_texture
Returns true if this particular GraphicsOutput can render directly into a texture,...
virtual bool begin_frame(FrameMode mode, Thread *current_thread)
This function will be called within the draw thread before beginning rendering for a given frame.
virtual void select_target_tex_page(int page)
Called internally when the window is in render-to-a-texture mode and we are in the process of renderi...
Encapsulates all the communication with a particular instance of a given rendering backend.
A thread; that is, a lightweight process.
TypeHandle is the identifier used to differentiate C++ class types.
A container for the various kinds of properties we might ask to have on a graphics window before we o...
void unregister_shared_depth_buffer(GraphicsOutput *graphics_output)
Unregister who is sharing the depth buffer.
void register_shared_depth_buffer(GraphicsOutput *graphics_output)
Register/save who is sharing the depth buffer.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.