#ifndef _gpuCacheConfig_h_
#define _gpuCacheConfig_h_
#include <stddef.h>
#include <maya/MColor.h>
#include <maya/MString.h>
namespace GPUCache {
class Config
{
public: 
    static void refresh();
    
    
    static const MColor kDefaultGrayColor;
 
    static const MColor kDefaultTransparency;
 
    
    static const unsigned short kLineStippleShortDashed;
    static const unsigned short kLineStippleDotted;
    
    static const MString kDisplayFilter;
 
    
    enum VP2OverrideAPI {
        kMPxSubSceneOverride,
        kMPxDrawOverride
    };
    
    
    static VP2OverrideAPI vp2OverrideAPI();
    
    
    
    
    
    
    static bool isIgnoringUVs();
    
    
    
    
    
    
    static size_t minVertsForVBOs();
    
    
    
    
    
    
    static size_t maxVBOCount();
    
    
    
    
    
    
    
    
    static size_t maxVBOSize();
    
    
    
    
    
    
    
    static bool useVertexArrayWhenVRAMIsLow();
    
    
    
    
    
    static bool useVertexArrayForGLPicking();
    
    
    
    
    static bool useGLPrimitivesInsteadOfVA();
    
    
    
    
    
    static bool emulateTwoSidedLighting();
    
    
    
    
    
    static size_t openGLPickingWireframeThreshold();
    static size_t openGLPickingSurfaceThreshold();
    
    
    
    
    static bool backgroundReading();
    
    
    
    static size_t backgroundReadingRefresh();
    
    
    
    
    
    
    static bool useHardwareInstancing();
    
    
    static size_t hardwareInstancingThreshold();
    
    
    static void initialize();
private:
    static bool sInitialized;
    static size_t sDefaultVP2OverrideAPI;
    static bool sDefaultIsIgnoringUVs;
    static size_t sDefaultMinVertsForVBOs;
    static size_t sDefaultMaxVBOCount;
    static size_t sDefaultMaxVBOSize;
    static bool sDefaultUseVertexArrayWhenVRAMIsLow;
    static bool sDefaultUseVertexArrayForGLPicking;
    static bool sDefaultUseGLPrimitivesInsteadOfVA;
    static bool sDefaultEmulateTwoSidedLighting;
    static size_t sDefaultOpenGLPickingWireframeThreshold;
    static size_t sDefaultOpenGLPickingSurfaceThreshold;
    static bool sDefaultBackgroundReading;
    static size_t sDefaultBackgroundReadingRefresh;
    static bool sDefaultUseHardwareInstancing;
    static size_t sDefaultHardwareInstancingThreshold;
    static size_t sVP2OverrideAPI;
    static bool sIsIgnoringUVs;
    static size_t sMinVertsForVBOs;
    static size_t sMaxVBOCount;
    static size_t sMaxVBOSize;
    static bool sUseVertexArrayWhenVRAMIsLow;
    static bool sUseVertexArrayForGLPicking;
    static bool sUseGLPrimitivesInsteadOfVA;
    static bool sEmulateTwoSidedLighting;
    static size_t sOpenGLPickingWireframeThreshold;
    static size_t sOpenGLPickingSurfaceThreshold;
    static bool sBackgroundReading;
    static size_t sBackgroundReadingRefresh;
    static bool sUseHardwareInstancing;
    static size_t sHardwareInstancingThreshold;
};
} 
#endif