Go to the documentation of this file.
14 #ifndef GRAPHICSSTATEGUARDIANBASE_H
15 #define GRAPHICSSTATEGUARDIANBASE_H
112 virtual bool get_incomplete_render()
const=0;
113 virtual bool get_effective_incomplete_render()
const=0;
115 virtual bool prefers_triangle_strips()
const=0;
116 virtual int get_max_vertices_per_array()
const=0;
117 virtual int get_max_vertices_per_primitive()
const=0;
119 virtual int get_max_texture_dimension()
const=0;
120 virtual bool get_supports_compressed_texture_format(
int compression_mode)
const=0;
122 virtual bool get_supports_multisample()
const=0;
123 virtual int get_supported_geom_rendering()
const=0;
124 virtual bool get_supports_shadow_filter()
const=0;
126 virtual bool get_supports_texture_srgb()
const=0;
128 virtual bool get_supports_hlsl()
const=0;
136 virtual void clear_before_callback()=0;
137 virtual void clear_state_and_transform()=0;
150 virtual bool extract_texture_data(
Texture *tex)=0;
170 virtual void dispatch_compute(
int size_x,
int size_y,
int size_z)=0;
173 Thread *current_thread)=0;
175 virtual void set_state_and_transform(
const RenderState *state,
182 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;
214 virtual void end_draw_primitives()=0;
216 virtual bool framebuffer_copy_to_texture
218 virtual bool framebuffer_copy_to_ram
221 virtual CoordinateSystem get_internal_coordinate_system()
const=0;
230 virtual void ensure_generated_shader(
const RenderState *state)=0;
232 static void mark_rehash_generated_shaders() {
234 ++_generated_shader_seq;
238 virtual void push_group_marker(
const std::string &marker) {}
239 virtual void pop_group_marker() {}
245 static size_t get_num_gsgs();
247 MAKE_SEQ(get_gsgs, get_num_gsgs, get_gsg);
263 static AtomicAdjust::Pointer _gsg_list;
272 static void init_type() {
273 TypedWritableReferenceCount::init_type();
275 TypedWritableReferenceCount::get_class_type());
278 return get_class_type();
280 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
A container for geometry primitives.
A table of objects that are saved within the graphics context for reference by handle later.
Specifies whether flat shading (per-polygon) or smooth shading (per-vertex) is in effect.
Enables or disables writing to the depth buffer.
This is a sequence number that increments monotonically.
This is a special class object that holds all the information returned by a particular GSG to indicat...
This is the data for one array of a GeomVertexData structure.
This functions similarly to a LightAttrib.
Specifies whether or how to enable antialiasing, if supported by the backend renderer.
Specifies how polygons are to be drawn.
This defines the actual numeric vertex data stored in a Geom, in the structure defined by a particula...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This controls the enabling of transparency.
A RenderBuffer is an arbitrary subset of the various layers (depth buffer, color buffer,...
This is a special class object that holds all the information returned by a particular GSG to indicat...
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
A light originating from a single point in space, and shining in all directions.
Defines the way an object appears in the presence of lighting.
Defines a series of disconnected points.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is a generic buffer object that lives in graphics memory.
This is a special class object that holds a handle to the sampler state object given by the graphics ...
A rectangular subregion within a window for rendering into.
Applies a Fog to the geometry at and below this node.
Represents a texture object, which is typically a single 2-d image but may also represent a 1-d or 3-...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
Defines a series of line strips.
This is a special class object that holds all the information returned by a particular GSG to indicat...
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
This is a standard, non-reentrant mutex, similar to the Mutex class.
This object holds the camera position, etc., and other general setup information for rendering a part...
A light source that seems to illuminate all points in space at once.
TypeHandle is the identifier used to differentiate C++ class types.
A node that holds Geom objects, renderable pieces of geometry.
Enables or disables writing to the depth buffer.
This is a base class for the various different classes that represent the result of a frame of render...
Represents a set of settings that indicate how a texture is sampled.
Encapsulates the data from a Geom, pre-fetched for one stage of the pipeline.
The ShaderContext is meant to contain the compiled version of a shader string.
Enables or disables writing to the color buffer.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
A light originating from a single point in space, and shining in a particular direction,...
Specifies how polygons are to be drawn.
A base class for any number of different kinds of lenses, linear and otherwise.
Indicates which, if any, material should be applied to geometry.
Enables or disables writing of pixel to framebuffer based on its alpha value relative to a reference ...
A light shining from infinitely far away in a particular direction, like sunlight.
Defines a series of disconnected triangles.
NodePath is the fundamental system for disambiguating instances, and also provides a higher-level int...
An abstract base class for GraphicsOutput, for all the usual reasons.
Defines a series of disconnected line segments.
This is a base class for those kinds of SavedContexts that occupy an easily-measured (and substantial...
Applies a scale to colors in the scene graph and on vertices.
Applies a transform matrix to UV's before they are rendered.
A derivative of Light and of Camera.
A base class for things which need to inherit from both TypedWritable and from ReferenceCount.
Defines a series of triangle strips.
Computes texture coordinates for geometry automatically based on vertex position and/or normal.
This is a special class object that holds all the information returned by a particular GSG to indicat...
This is a base class for the GraphicsStateGuardian class, which is itself a base class for the variou...
Encapsulates the data from a GeomPrimitive, pre-fetched for one stage of the pipeline.
This specifies how colors are blended into the frame buffer, for special effects.
Indicates which set of lights should be considered "on" to illuminate geometry at this level and belo...
This is a special kind of attribute that instructs the graphics driver to apply an offset or bias to ...
Indicates the set of TextureStages and their associated Textures that should be applied to (or remove...
Indicates what color should be applied to renderable geometry.
Defines a series of triangle fans.
A thread; that is, a lightweight process.
A window, fullscreen or on a desktop, into which a graphics device sends its output for interactive d...
Indicates which faces should be culled based on their vertex ordering.
This is an abstract base class for a family of classes that represent the fundamental geometry primit...
Encapsulates the data from a GeomVertexData, pre-fetched for one stage of the pipeline.
Objects of this class are used to convert vertex data from a Geom into a format suitable for passing ...