15 #ifndef GRAPHICSPIPE_H
16 #define GRAPHICSPIPE_H
18 #include "pandabase.h"
20 #include "graphicsDevice.h"
21 #include "typedReferenceCount.h"
22 #include "pointerTo.h"
23 #include "lightMutex.h"
24 #include "displayInformation.h"
70 OT_fullscreen_window = 0x0002,
72 OT_texture_buffer = 0x0008,
75 enum BufferCreationFlags {
77 BF_refuse_parasite = 0x0001,
78 BF_require_parasite = 0x0002,
79 BF_refuse_window = 0x0004,
80 BF_require_window = 0x0008,
81 BF_require_callback_window = 0x0010,
84 BF_can_bind_color = 0x0040,
85 BF_can_bind_every = 0x0080,
86 BF_resizeable = 0x0100,
87 BF_size_track_host = 0x0200,
88 BF_rtt_cumulative = 0x0400,
89 BF_fb_props_optional = 0x0800,
90 BF_size_square = 0x1000,
91 BF_size_power_2 = 0x2000,
92 BF_can_bind_layered = 0x4000,
95 INLINE
bool is_valid()
const;
96 INLINE
int get_supported_types()
const;
97 INLINE
bool supports_type(
int flags)
const;
99 INLINE
int get_display_width()
const;
100 INLINE
int get_display_height()
const;
103 virtual void lookup_cpu_data();
105 virtual string get_interface_name()
const=0;
108 enum PreferredWindowThread {
112 virtual PreferredWindowThread get_preferred_window_thread()
const;
135 int _supported_types;
142 static const int strip_properties[];
149 static void init_type() {
150 TypedReferenceCount::init_type();
151 register_type(_type_handle,
"GraphicsPipe",
152 TypedReferenceCount::get_class_type());
155 return get_class_type();
157 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
164 #include "graphicsPipe.I"
This object represents a window on the desktop, not necessarily a Panda window.
Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-...
A base class for things which need to inherit from both TypedObject and from ReferenceCount.
A window, fullscreen or on a desktop, into which a graphics device sends its output for interactive d...
A container for the various kinds of properties we might ask to have on a graphics window before we o...
An offscreen buffer for rendering into.
An object to create GraphicsOutputs that share a particular 3-D API.
This is a base class for the various different classes that represent the result of a frame of render...
An abstract device object that is part of Graphics Pipe.
Encapsulates all the communication with a particular instance of a given rendering backend...
This class is the main interface to controlling the render 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 frameBuffer before...
This is a standard, non-reentrant mutex, similar to the Mutex class.