00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "KeosOGLEnum.h"
00023
00024 namespace Keos
00025 {
00026
00027
00028
00029
00030
00031 GLenum COGLEnum::MatrixType[] =
00032 {
00033 GL_MODELVIEW,
00034 GL_PROJECTION,
00035 GL_TEXTURE,
00036 GL_TEXTURE,
00037 GL_TEXTURE,
00038 GL_TEXTURE
00039 };
00040
00041
00042 GLenum COGLEnum::MatrixType2[] =
00043 {
00044 GL_MODELVIEW_MATRIX,
00045 GL_PROJECTION_MATRIX,
00046 GL_TEXTURE_MATRIX,
00047 GL_TEXTURE_MATRIX,
00048 GL_TEXTURE_MATRIX,
00049 GL_TEXTURE_MATRIX
00050 };
00051
00052
00053 COGLEnum::TPixelFmt COGLEnum::PixelFormat[] =
00054 {
00055 {GL_LUMINANCE, GL_LUMINANCE8, GL_UNSIGNED_BYTE},
00056 {GL_LUMINANCE_ALPHA, GL_LUMINANCE8_ALPHA8, GL_UNSIGNED_BYTE},
00057 {GL_BGRA, GL_RGB5_A1, GL_UNSIGNED_SHORT_1_5_5_5_REV},
00058 {GL_BGRA, GL_RGBA4, GL_UNSIGNED_SHORT_4_4_4_4_REV},
00059 {GL_BGR, GL_RGB8, GL_UNSIGNED_BYTE},
00060 {GL_BGRA, GL_RGBA8, GL_UNSIGNED_BYTE},
00061 {GL_BGR, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, 0},
00062 {GL_BGRA, GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, 0},
00063 {GL_BGRA, GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, 0}
00064 };
00065
00066
00067 GLenum COGLEnum::Blend[] =
00068 {
00069 GL_SRC_ALPHA,
00070 GL_ONE_MINUS_SRC_ALPHA,
00071 GL_DST_ALPHA,
00072 GL_ONE_MINUS_DST_ALPHA,
00073 GL_SRC_COLOR,
00074 GL_ONE_MINUS_SRC_COLOR,
00075 GL_DST_COLOR,
00076 GL_ONE_MINUS_DST_COLOR,
00077 GL_ONE,
00078 GL_ZERO
00079 };
00080
00081
00082 GLenum COGLEnum::TextureOp[] =
00083 {
00084 GL_REPLACE,
00085 GL_ADD,
00086 GL_MODULATE,
00087 GL_REPLACE,
00088 GL_ADD,
00089 GL_MODULATE
00090 };
00091
00092
00093 GLenum COGLEnum::TextureArg[] =
00094 {
00095 GL_PRIMARY_COLOR_EXT,
00096 GL_TEXTURE,
00097 GL_PREVIOUS_EXT,
00098 GL_CONSTANT_EXT
00099 };
00100
00101
00102 GLenum COGLEnum::RenderParameter[] =
00103 {
00104 0,
00105 GL_BLEND,
00106 GL_LIGHTING
00107 };
00108
00109
00110 GLenum COGLEnum::FillMode[] =
00111 {
00112 GL_POINT,
00113 GL_LINE,
00114 GL_FILL
00115 };
00116
00117
00118 ulong COGLEnum::BufferFlags(ulong nFlags)
00119 {
00121 return (nFlags & BUF_DYNAMIC ? GL_STATIC_DRAW_ARB : GL_STATIC_DRAW_ARB);
00122 }
00123
00124
00125 ulong COGLEnum::LockFlags(ulong nFlags)
00126 {
00127 ulong nLockFlags = GL_READ_WRITE_ARB;
00128 if (nFlags & LOCK_READONLY) nLockFlags = GL_READ_ONLY_ARB;
00129 if (nFlags & LOCK_WRITEONLY) nLockFlags = GL_WRITE_ONLY_ARB;
00130
00131 return nLockFlags;
00132 }
00133
00134
00135 GLenum COGLEnum::Get(TMatrixType Value)
00136 {
00137 return MatrixType[Value];
00138 }
00139
00140
00141 GLenum COGLEnum::GetMatrix(TMatrixType Value)
00142 {
00143 return MatrixType2[Value];
00144 }
00145
00146
00147 COGLEnum::TPixelFmt COGLEnum::Get(TPixelFormat Value)
00148 {
00149 return PixelFormat[Value];
00150 }
00151
00152
00153 GLenum COGLEnum::Get(TBlend Value)
00154 {
00155 return Blend[Value];
00156 }
00157
00158
00159 GLenum COGLEnum::Get(TTextureOp Value)
00160 {
00161 return TextureOp[Value];
00162 }
00163
00164
00165 GLenum COGLEnum::Get(TTextureArg Value)
00166 {
00167 return TextureArg[Value];
00168 }
00169
00170
00171 GLenum COGLEnum::Get(TRenderParameter Value)
00172 {
00173 return RenderParameter[Value];
00174 }
00175
00176
00177 GLenum COGLEnum::Get(TFillMode Value)
00178 {
00179 return FillMode[Value];
00180 }
00181
00182 }