The ShaderGenerator is a device that effectively replaces the classic fixed function pipeline with a 'next-gen' fixed function pipeline. More...
#include "shaderGenerator.h"
Public Member Functions | |
ShaderGenerator (GraphicsStateGuardianBase *gsg, GraphicsOutputBase *host) | |
Create a ShaderGenerator. More... | |
virtual | ~ShaderGenerator () |
Destroy a ShaderGenerator. More... | |
virtual | CPT (ShaderAttrib) synthesize_shader(const RenderState *rs) |
virtual TypeHandle | force_init_type () |
virtual TypeHandle | get_type () const |
![]() | |
TypedReferenceCount (const TypedReferenceCount ©) | |
void | operator= (const TypedReferenceCount ©) |
![]() | |
TypedObject (const TypedObject ©) | |
TypedObject * | as_typed_object () |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
const TypedObject * | as_typed_object () const |
Returns the object, upcast (if necessary) to a TypedObject pointer. More... | |
int | get_best_parent_from_Set (const std::set< int > &) const |
int | get_type_index () const |
Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. More... | |
bool | is_exact_type (TypeHandle handle) const |
Returns true if the current object is the indicated type exactly. More... | |
bool | is_of_type (TypeHandle handle) const |
Returns true if the current object is or derives from the indicated type. More... | |
void | operator= (const TypedObject ©) |
![]() | |
int | get_ref_count () const |
Returns the current reference count. More... | |
WeakReferenceList * | get_weak_list () const |
Returns the WeakReferenceList associated with this ReferenceCount object. More... | |
bool | has_weak_list () const |
Returns true if this particular ReferenceCount object has a WeakReferenceList created, false otherwise. More... | |
void | local_object () |
This function should be called, once, immediately after creating a new instance of some ReferenceCount-derived object on the stack. More... | |
void | ref () const |
Explicitly increments the reference count. More... | |
bool | test_ref_count_integrity () const |
Does some easy checks to make sure that the reference count isn't completely bogus. More... | |
bool | test_ref_count_nonzero () const |
Does some easy checks to make sure that the reference count isn't zero, or completely bogus. More... | |
virtual bool | unref () const |
Explicitly decrements the reference count. More... | |
void | weak_ref (WeakPointerToVoid *ptv) |
Adds the indicated PointerToVoid as a weak reference to this object. More... | |
void | weak_unref (WeakPointerToVoid *ptv) |
Removes the indicated PointerToVoid as a weak reference to this object. More... | |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static void | init_type () |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
This function is declared non-inline to work around a compiler bug in g++ 2.96. More... | |
![]() | |
static TypeHandle | get_class_type () |
static void | init_type () |
The ShaderGenerator is a device that effectively replaces the classic fixed function pipeline with a 'next-gen' fixed function pipeline.
The next-gen fixed function pipeline supports features like normal mapping, gloss mapping, cartoon lighting, and so forth. It works by automatically generating a shader from a given RenderState.
Currently, there is one ShaderGenerator object per GraphicsStateGuardian. It is our intent that in time, people will write classes that derive from ShaderGenerator but which yield slightly different results.
The ShaderGenerator owes its existence to the 'Bamboo Team' at Carnegie Mellon's Entertainment Technology Center. This is a group of students who, as a semester project, decided that next-gen graphics should be accessible to everyone, even if they don't know shader programming. The group consisted of:
Aaron Lo, Programmer Heegun Lee, Programmer Erin Fernandez, Artist/Tester Joe Grubb, Artist/Tester Ivan Ortega, Technical Artist/Tester
Thanks to them!
Definition at line 66 of file shaderGenerator.h.
ShaderGenerator::ShaderGenerator | ( | GraphicsStateGuardianBase * | gsg, |
GraphicsOutputBase * | host | ||
) |
Create a ShaderGenerator.
This has no state, except possibly to cache certain results. The parameter that must be passed is the GSG to which the shader generator belongs.
Definition at line 56 of file shaderGenerator.cxx.
|
virtual |
Destroy a ShaderGenerator.
Definition at line 66 of file shaderGenerator.cxx.