15 #ifndef GRAPHICSSTATEGUARDIANBASE_H 16 #define GRAPHICSSTATEGUARDIANBASE_H 18 #include "pandabase.h" 20 #include "typedWritableReferenceCount.h" 21 #include "nodeCachedReferenceCount.h" 23 #include "lightMutex.h" 115 virtual bool get_incomplete_render()
const=0;
116 virtual bool get_effective_incomplete_render()
const=0;
118 virtual bool prefers_triangle_strips()
const=0;
119 virtual int get_max_vertices_per_array()
const=0;
120 virtual int get_max_vertices_per_primitive()
const=0;
122 virtual int get_max_texture_dimension()
const=0;
123 virtual bool get_supports_compressed_texture_format(
int compression_mode)
const=0;
125 virtual bool get_supports_multisample()
const=0;
126 virtual int get_supported_geom_rendering()
const=0;
127 virtual bool get_supports_shadow_filter()
const=0;
129 virtual bool get_supports_texture_srgb()
const=0;
137 virtual void clear_before_callback()=0;
138 virtual void clear_state_and_transform()=0;
151 virtual bool extract_texture_data(
Texture *tex)=0;
168 virtual void dispatch_compute(
int size_x,
int size_y,
int size_z)=0;
171 Thread *current_thread)=0;
173 virtual void set_state_and_transform(
const RenderState *state,
174 const TransformState *transform)=0;
181 virtual PN_stdfloat compute_distance_to(
const LPoint3 &point)
const=0;
187 virtual bool depth_offset_decals()=0;
188 virtual CPT(
RenderState) begin_decal_base_first()=0;
190 virtual CPT(
RenderState) begin_decal_base_second()=0;
191 virtual void finish_decal()=0;
212 virtual void end_draw_primitives()=0;
214 virtual bool framebuffer_copy_to_texture
216 virtual bool framebuffer_copy_to_ram
219 virtual CoordinateSystem get_internal_coordinate_system()
const=0;
236 static int get_num_gsgs();
238 MAKE_SEQ(get_gsgs, get_num_gsgs, get_gsg);
254 static void init_type() {
255 TypedWritableReferenceCount::init_type();
256 register_type(_type_handle,
"GraphicsStateGuardianBase",
257 TypedWritableReferenceCount::get_class_type());
260 return get_class_type();
262 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
A light shining from infinitely far away in a particular direction, like sunlight.
This is a special class object that holds all the information returned by a particular GSG to indicat...
Enables or disables writing to the depth buffer.
A base class for any number of different kinds of lenses, linear and otherwise.
Enables or disables writing to the color buffer.
Defines a series of disconnected points.
Indicates which, if any, material should be applied to geometry.
Enables or disables writing to the depth buffer.
Specifies whether or how to enable antialiasing, if supported by the backend renderer.
This controls the enabling of transparency.
Objects of this class are used to convert vertex data from a Geom into a format suitable for passing ...
This is a special class object that holds all the information returned by a particular GSG to indicat...
Defines a series of triangle fans.
Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-...
This is an abstract base class for a family of classes that represent the fundamental geometry primit...
Specifies whether flat shading (per-polygon) or smooth shading (per-vertex) is in effect...
This is a special class object that holds all the information returned by a particular GSG to indicat...
Defines a series of triangle strips.
A light source that seems to illuminate all points in space at once.
This functions similarly to a LightAttrib.
This is a three-component point in space (as opposed to a three-component vector, which represents a ...
Encapsulates the data from a Geom, pre-fetched for one stage of the pipeline.
A table of objects that are saved within the graphics context for reference by handle later...
A window, fullscreen or on a desktop, into which a graphics device sends its output for interactive d...
The ShaderContext is meant to contain the compiled version of a shader string.
Indicates the set of TextureStages and their associated Textures that should be applied to (or remove...
Indicates which faces should be culled based on their vertex ordering.
This is our own Panda specialization on the default STL vector.
Applies a Fog to the geometry at and below this node.
This defines the actual numeric vertex data stored in a Geom, in the structure defined by a particula...
A container for geometry primitives.
A light originating from a single point in space, and shining in a particular direction, with a cone-shaped falloff.
A base class for things which need to inherit from both TypedWritable and from ReferenceCount.
Enables or disables writing of pixel to framebuffer based on its alpha value relative to a reference ...
This is a base class for the various different classes that represent the result of a frame of render...
Defines the way an object appears in the presence of lighting.
Applies a scale to colors in the scene graph and on vertices.
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
Defines a series of disconnected line segments.
Represents a set of settings that indicate how a texture is sampled.
This is a special class object that holds a handle to the sampler state object given by the graphics ...
Applies a transform matrix to UV's before they are rendered.
This is a base class for the GraphicsStateGuardian class, which is itself a base class for the variou...
This specifies how colors are blended into the frame buffer, for special effects. ...
A thread; that is, a lightweight process.
A derivative of Light and of Camera.
Defines a series of line strips.
This is a special kind of attribute that instructs the graphics driver to apply an offset or bias to ...
This is a special class object that holds all the information returned by a particular GSG to indicat...
Specifies how polygons are to be drawn.
Defines a series of disconnected triangles.
Specifies how polygons are to be drawn.
A rectangular subregion within a window for rendering into.
Indicates what color should be applied to renderable geometry.
Encapsulates the data from a GeomVertexData, pre-fetched for one stage of the pipeline.
An abstract base class for GraphicsOutput, for all the usual reasons.
TypeHandle is the identifier used to differentiate C++ class types.
This object holds the camera position, etc., and other general setup information for rendering a part...
This is a standard, non-reentrant mutex, similar to the Mutex class.
Encapsulates the data from a GeomPrimitive, pre-fetched for one stage of the pipeline.
Computes texture coordinates for geometry automatically based on vertex position and/or normal...
A RenderBuffer is an arbitrary subset of the various layers (depth buffer, color buffer, etc.) of a drawing region.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
A light originating from a single point in space, and shining in all directions.
A node that holds Geom objects, renderable pieces of geometry.
This is the data for one array of a GeomVertexData structure.
Indicates which set of lights should be considered "on" to illuminate geometry at this level and belo...