00001
00002
00003 #ifndef NV_GFX_API_H
00004 #define NV_GFX_API_H
00005
00006 #include <NvFoundation.h>
00007
00010
00012 struct NvGfxAPI {
00013 enum Enum {
00014 GLES,
00015 GL
00016 };
00017 };
00018
00021 struct NvGfxAPIVersion {
00022 NvGfxAPIVersion(NvGfxAPI::Enum _api, int32_t _majVersion, int32_t _minVersion = 0) :
00023 api(_api)
00024 , majVersion(_majVersion)
00025 , minVersion(_minVersion) {}
00026
00031 bool operator<(const NvGfxAPIVersion &rhs) const {
00032 if (api < rhs.api) return true;
00033 if (api > rhs.api) return false;
00034
00035 if (majVersion < rhs.majVersion) return true;
00036 if (majVersion > rhs.majVersion) return false;
00037
00038 if (minVersion < rhs.minVersion) return true;
00039 return false;
00040 }
00041
00042 bool operator<=(const NvGfxAPIVersion &rhs) const {
00043 if (api < rhs.api) return true;
00044 if (api > rhs.api) return false;
00045
00046 if (majVersion < rhs.majVersion) return true;
00047 if (majVersion > rhs.majVersion) return false;
00048
00049 if (minVersion <= rhs.minVersion) return true;
00050 return false;
00051 }
00052
00053 bool operator>(const NvGfxAPIVersion &rhs) const {
00054 if (api > rhs.api) return true;
00055 if (api < rhs.api) return false;
00056
00057 if (majVersion > rhs.majVersion) return true;
00058 if (majVersion < rhs.majVersion) return false;
00059
00060 if (minVersion > rhs.minVersion) return true;
00061 return false;
00062 }
00063
00064 bool operator>=(const NvGfxAPIVersion &rhs) const {
00065 if (api > rhs.api) return true;
00066 if (api < rhs.api) return false;
00067
00068 if (majVersion > rhs.majVersion) return true;
00069 if (majVersion < rhs.majVersion) return false;
00070
00071 if (minVersion >= rhs.minVersion) return true;
00072 return false;
00073 }
00074
00075 bool operator==(const NvGfxAPIVersion &rhs) const {
00076 return (api == rhs.api) && (majVersion == rhs.majVersion) &&
00077 (minVersion == rhs.minVersion);
00078 }
00079
00080 bool operator!=(const NvGfxAPIVersion &rhs) const {
00081 return (api != rhs.api) || (majVersion != rhs.majVersion) ||
00082 (minVersion != rhs.minVersion);
00083 }
00085
00086 NvGfxAPI::Enum api;
00087 int32_t majVersion;
00088 int32_t minVersion;
00089 };
00090
00092 struct NvGfxAPIVersionES2 : public NvGfxAPIVersion {
00093 NvGfxAPIVersionES2() : NvGfxAPIVersion(NvGfxAPI::GLES, 2) {}
00094 };
00095
00097 struct NvGfxAPIVersionES3 : public NvGfxAPIVersion {
00098 NvGfxAPIVersionES3() : NvGfxAPIVersion(NvGfxAPI::GLES, 3) {}
00099 };
00100
00102 struct NvGfxAPIVersionGL4 : public NvGfxAPIVersion {
00103 NvGfxAPIVersionGL4() : NvGfxAPIVersion(NvGfxAPI::GL, 4) {}
00104 };
00105
00107 struct NvGfxAPIVersionGL4_3 : public NvGfxAPIVersion {
00108 NvGfxAPIVersionGL4_3() : NvGfxAPIVersion(NvGfxAPI::GL, 4, 3) {}
00109 };
00110
00112 struct NvGfxAPIVersionGL4_4 : public NvGfxAPIVersion {
00113 NvGfxAPIVersionGL4_4() : NvGfxAPIVersion(NvGfxAPI::GL, 4, 4) {}
00114 };
00115
00116 #endif