#ifndef _cgfxProfile_h_
#define _cgfxProfile_h_
#include <maya/MString.h>
#include <Cg/cg.h>
class cgfxProfile 
{
public:
    
    
    static void initialize();
    static void uninitialize();
    
    cgfxProfile(
MString name, CGpass pass);
    
    ~cgfxProfile();
    
    enum TexCoordOrientation {
        TEXCOORD_OPENGL,
        TEXCOORD_DIRECTX,
    };
    static TexCoordOrientation getTexCoordOrientation() {
        return sTexCoordOrientation;
    }
    
    
    
    
    static const cgfxProfile* getProfile(
MString name);
 
    
    static const cgfxProfile* getBestProfile() { return sBestProfile; }
    
    MString getName()
 const { 
return fName; }
 
    
    CGprofile getVertexProfile() const { return fVtx; }
    CGprofile getGeometryProfile() const { return fGeom; }
    CGprofile getFragmentProfile() const { return fFrag; }
    bool isSupported() const;
    
private:
    cgfxProfile(
MString name, CGprofile vtx, CGprofile geom, CGprofile frag);
    
    cgfxProfile(const cgfxProfile&);
    const cgfxProfile& operator=(const cgfxProfile&);
    
    static TexCoordOrientation sTexCoordOrientation;
    static cgfxProfile*       sProfileList;
    static const cgfxProfile* sBestProfile;
    CGprofile       fVtx;
    CGprofile       fGeom;
    CGprofile       fFrag;
    cgfxProfile*    fNext;
};
#endif