14 #ifndef SHADERCONTEXT_H 15 #define SHADERCONTEXT_H 35 virtual void set_state_and_transform(
const RenderState *,
40 INLINE
virtual bool valid() {
return false; }
41 INLINE
virtual void bind() {};
42 INLINE
virtual void unbind() {};
43 INLINE
virtual void issue_parameters(
int altered) {};
44 INLINE
virtual void disable_shader_vertex_arrays() {};
45 INLINE
virtual bool update_shader_vertex_arrays(
ShaderContext *prev,
bool force) {
return false; };
46 INLINE
virtual void disable_shader_texture_bindings() {};
47 INLINE
virtual void update_shader_texture_bindings(
ShaderContext *prev) {};
48 INLINE
virtual void update_shader_buffer_bindings(
ShaderContext *prev) {};
50 INLINE
virtual bool uses_standard_vertex_arrays(
void) {
return true; };
51 INLINE
virtual bool uses_custom_vertex_arrays(
void) {
return false; };
54 INLINE
Shader *get_shader()
const;
55 MAKE_PROPERTY(shader, get_shader);
64 static void init_type() {
67 TypedObject::get_class_type());
70 return get_class_type();
72 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
static void init_type()
This function is declared non-inline to work around a compiler bug in g++ 2.96.
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.
The ShaderContext is meant to contain the compiled version of a shader string.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This represents a unique collection of RenderAttrib objects that correspond to a particular renderabl...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
TypeHandle is the identifier used to differentiate C++ class types.
This is the base class for all GSG-specific context objects, such as TextureContext and GeomContext.