本文整理汇总了C++中checkGLError函数的典型用法代码示例。如果您正苦于以下问题:C++ checkGLError函数的具体用法?C++ checkGLError怎么用?C++ checkGLError使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了checkGLError函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: esLoadShader
GLuint esLoadShader(GLenum shader_type, std::string src)
{
GLint succeeded;
GLuint sid;
sid = glCreateShader(shader_type);
// glShaderSource(sid, 1, (const GLchar **) &src, NULL);
char const * shaderCodePointer = src.c_str();
glShaderSource(sid, 1, &shaderCodePointer, NULL);
glCompileShader(sid);
glGetShaderiv(sid, GL_COMPILE_STATUS, &succeeded);
GLint log_length;
glGetShaderiv(sid, GL_INFO_LOG_LENGTH, &log_length);
if (log_length > 1) {
char *log = (char *) malloc(sizeof(char) * log_length);
GLint chars_written;
glGetShaderInfoLog(sid, log_length, &chars_written, log);
checkGLError(" ********* Error esLoadShader: Loading and compiling a shader.");
printf("%s\n", log);
free(log);
}
checkGLError(" *********** Error esLoadShader: Something went wrong with the shader.");
return sid;
}
开发者ID:marni,项目名称:roll-the-ball,代码行数:26,代码来源:esUtil.cpp
示例2: checkGLError
void CVertexBuffer::allocate(U32 size, eUsageType usage, bool system, void *data) {
mSize = size;
mUsage = usage;
mLocked = false;
//GLEW_ARB_vertex_buffer_object = false;
if(GLEW_ARB_vertex_buffer_object && !system){
mSystemMemory = false;
checkGLError();
glGenBuffersARB(1, &mBufferId);
checkGLError();
GLenum use;
switch (usage) {
case STATIC:
use = GL_STATIC_DRAW_ARB;
break;
case DYNAMIC:
use = GL_STREAM_DRAW_ARB;
break;
}
activate();
glBufferDataARB(GL_ARRAY_BUFFER_ARB, mSize, data, use);
checkGLError();
deactivate();
} else {
mSystemMemory = true;
mSysAddr = malloc(mSize);
if(data){
memcpy(mSysAddr, data, mSize);
}
}
}
开发者ID:harkal,项目名称:sylphis3d,代码行数:31,代码来源:vertexbuffer.cpp
示例3: glGenBuffers
//Creates the Vertex Array Object, and Vertex Buffer Objects for the mesh
void Mesh::createBuffers() {
//Generate and fill vertex buffer object
glGenBuffers(1, &this->vertexBufferID);
glBindBuffer(GL_ARRAY_BUFFER, this->vertexBufferID);
checkGLError("Could not generate the VertexBuffer");
glBufferData(GL_ARRAY_BUFFER, (sizeof(this->vertices[0])*this->vertices.size()), (GLvoid*)&this->vertices[0], GL_STATIC_DRAW);
checkGLError("Could not fill VertexBuffer");
//Generate and fill the vertex index buffer
glGenBuffers(1, &this->vertexIndexID);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, this->vertexIndexID);
checkGLError("Could not generate the VertexIndexBuffer");
glBufferData(GL_ELEMENT_ARRAY_BUFFER, (sizeof(GLuint)*this->vertexIndices.size()), (GLvoid*)&this->vertexIndices[0], GL_STATIC_DRAW);
checkGLError("Could not fill the VertexIndexBuffer");
//Generate Vertex Array Object
glGenVertexArrays(1, &this->vertexArrayID);
glBindVertexArray(this->vertexArrayID);
checkGLError("Could not generate and bind VertexArray");
glBindBuffer(GL_ARRAY_BUFFER, this->vertexBufferID);
this->shader->linkVertexAttributes();
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, this->vertexIndexID);
//Unbind the buffers
glBindBuffer(GL_ARRAY_BUFFER,0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0);
glBindVertexArray(0);
}
开发者ID:ulrichomega,项目名称:GameArchTerrain,代码行数:31,代码来源:Mesh.cpp
示例4: checkGLError
void MenuRenderer::render() {
checkGLError("MenuRenderer Start");
// set the menu projection
glDisable(GL_CULL_FACE);
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glViewport(0, 0, context->gConfig->viewportWidth, context->gConfig->viewportHeight);
if (context->gConfig->useShaders) {
context->renderContext->projMatrix.identity();
context->renderContext->projMatrix.ortho(0, context->gConfig->width, context->gConfig->height, 0, -1, 1);
context->renderContext->mvMatrix.identity();
} else {
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
// top left is 0,0, so scissor will be inverted y
glOrthof(0, context->gConfig->width, context->gConfig->height, 0, -1, 1);
glMatrixMode(GL_MODELVIEW);
glColor4f(1, 1, 1, 1);
}
S32 i = 0;
for (i = 0; i < context->uiManager->activeMenuStack->getSize(); i++) {
Menu *menu = context->uiManager->activeMenuStack->array[i];
UIComponent *root = menu->getRootComponent();
activeResourceId = -1;
render(root);
}
glDisable(GL_BLEND);
checkGLError("MenuRenderer End");
}
开发者ID:Clever-Boy,项目名称:batterytech,代码行数:30,代码来源:MenuRenderer.cpp
示例5: FT_Get_Char_Index
Glyph Font::renderGlyph(char glyph, float font_size)
{
if(m_rendered_symbols[(int)glyph].find(font_size) != m_rendered_symbols[(int)glyph].end()) {
return m_rendered_symbols[(int)glyph].at(font_size);
}
Glyph new_glyph;
FT_UInt char_index = FT_Get_Char_Index(m_font_face, glyph);
if(FT_Load_Glyph(m_font_face, char_index, FT_LOAD_DEFAULT) || FT_Render_Glyph(m_font_face->glyph, FT_RENDER_MODE_NORMAL))
return new_glyph;
FT_Bitmap& bitmap = m_font_face->glyph->bitmap;
new_glyph.bearing.x = m_font_face->glyph->metrics.horiBearingX / 64;
new_glyph.bearing.y = m_font_face->glyph->metrics.horiBearingY / 128;
new_glyph.advance = m_font_face->glyph->metrics.horiAdvance / 64;
glGenTextures(1, &new_glyph.texture);
glBindTexture(GL_TEXTURE_2D, new_glyph.texture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
checkGLError();
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, bitmap.width, bitmap.rows, 0, GL_RED, GL_UNSIGNED_BYTE, bitmap.buffer);
checkGLError();
new_glyph.id = glyph;
new_glyph.dimensions = glm::vec2(bitmap.width, bitmap.rows);
m_rendered_symbols[(int)glyph][font_size] = new_glyph;
return new_glyph;
}
开发者ID:Df458,项目名称:DFEngine,代码行数:32,代码来源:Font.cpp
示例6: glClear
bool HeightMap::appMain() {
if (!running) {
return false;
}
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glUseProgram(program.programID());
running &= checkGLError("Error encountered enabling Shader Program\n", Logger::LOG_ERROR);
_xform = Matrix4::translate(0.0f, -1.0f, _zPlane)
* Matrix4::rotate(40.0f, 0.0f, 0.0f)
* Matrix4::rotate(0.0f, _angle, 0.0f);
glUniformMatrix4fv(_xformLoc, 1, false, _xform.buffer());
running &= checkGLError("Error encountered enabling loading Transform matrix: %s\n", Logger::LOG_ERROR);
glDrawArrays(_drawMode, 0, _totalVerts);
running &= checkGLError("Error encountered calling glDrawArrays: %s\n", Logger::LOG_ERROR);
display->swapBuffers();
display->mainLoop(*this);
_angle += 0.5f;
if (_angle >= 360.0f) {
_angle -= 360.0f;
};
return true;
}
开发者ID:AdamLuchjenbroers,项目名称:GraphicsTinkering,代码行数:29,代码来源:heightmap.cpp
示例7: assert
// private
void CGLvbo::Init(const int nElements, const void *pVertexBuf, const void *pNormalBuf, const void *pUVBuf, GLenum nUsage)
{
assert(nullptr!=pVertexBuf);
assert(0<nElements);
assert( nUsage>=0x88E0 && nUsage<=0x88EA );
Cleanup();
checkGLError();
glGenVertexArrays(1, &mVAO);
glBindVertexArray(mVAO);
// the vertex buffer is NOT optional
glGenBuffers(1, &mVertObjId);
glBindBuffer(GL_ARRAY_BUFFER, mVertObjId);
glBufferData(GL_ARRAY_BUFFER, nElements * sizeof(glm::vec3), pVertexBuf, nUsage);
checkGLError();
if(pNormalBuf) {
glGenBuffers(1, &mNormObjId);
glBindBuffer(GL_ARRAY_BUFFER, mNormObjId);
glBufferData(GL_ARRAY_BUFFER, nElements * sizeof(glm::vec3), pNormalBuf, nUsage);
checkGLError();
}
if(pUVBuf) {
glGenBuffers(1, &mUVObjId);
glBindBuffer(GL_ARRAY_BUFFER, mUVObjId);
glBufferData(GL_ARRAY_BUFFER, nElements * sizeof(glm::vec2), pUVBuf, nUsage);
checkGLError();
}
// LOG_GLERROR();
}
开发者ID:fluffyfreak,项目名称:GLSLPlanet,代码行数:35,代码来源:GLvbo.cpp
示例8: updateCells
void SDLFontGL::updateDimensions() {
if (!m_openglActive || 0 == nWidth || 0 == nHeight) return;
unsigned int oldCols = m_cols, oldRows = m_rows;
m_cols = m_dimW / nWidth;
m_rows = m_dimH / nHeight;
m_curdimW = m_cols * nWidth;
m_curdimH = m_rows * nHeight;
m_curdimX = m_dimX + (m_dimW - m_curdimW) / 2;
m_curdimY = m_dimY + (m_dimH - m_curdimH) / 2;
if (oldCols != m_cols || oldRows != m_rows || !m_cellsTex) {
updateCells();
}
if (m_charShader.program) {
glUseProgram(m_charShader.program);
checkGLError();
glUniform2f(m_charShader.aDim, m_cols, m_rows);
checkGLError();
}
if (m_cursorShader.program) {
glUseProgram(m_cursorShader.program);
checkGLError();
glUniform2f(m_cursorShader.aDim, m_cols, m_rows);
checkGLError();
}
}
开发者ID:RyanHope,项目名称:wTerm,代码行数:33,代码来源:sdlfontgl.cpp
示例9: glGenTextures
void SDLFontGL::createTexture() {
// Create Big GL texture:
glGenTextures(1,&GlyphCache);
glBindTexture(GL_TEXTURE_2D, GlyphCache);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
// Set size of the texture, but no data.
// We want 1 extra row of pixel data
// so we can draw solid colors as part
// of the same operations.
texW = nextPowerOfTwo(nChars*nWidth);
texH = nextPowerOfTwo(nFonts*MAX_CHARSETS*nHeight + 1);
int nMode = getGLFormat();
glTexImage2D(GL_TEXTURE_2D,
0, nMode,
texW, texH,
0, nMode,
GL_UNSIGNED_BYTE, NULL);
checkGLError();
// Put a single white pixel at bottom of texture.
// We use this as the 'texture' data for blitting
// solid backgrounds.
char whitepixel[] = { 255, 255, 255, 255 };
assert(nFonts && nHeight);
glTexSubImage2D(GL_TEXTURE_2D, 0,
0,nFonts*MAX_CHARSETS*nHeight,
1, 1,
GL_RGBA, GL_UNSIGNED_BYTE, whitepixel);
checkGLError();
}
开发者ID:minego,项目名称:wTerm,代码行数:34,代码来源:sdlfontgl.cpp
示例10: FT_Set_Pixel_Sizes
void Font::draw(IScene* scene, const char* text, glm::mat4 transform, float font_size, glm::vec3 color)
{
FT_Set_Pixel_Sizes(m_font_face, font_size, font_size);
glUseProgram(TEXT_PROGRAM);
checkGLError();
glm::vec3 pen(0, 0, 0);
char prev = 0;
bool kern = FT_HAS_KERNING(m_font_face);
for(const char* i = text; i[0]; ++i) {
FT_UInt index = FT_Get_Char_Index(m_font_face, i[0]);
Glyph glyph = renderGlyph(i[0], font_size);
if(prev && kern && i) {
FT_Vector delta;
FT_Get_Kerning(m_font_face, prev, index, FT_KERNING_DEFAULT, &delta);
pen.x += delta.x * scene->getDPU();
//fprintf(stderr, "%ld\n", delta.x);
}
if(i[0] == '\n') {
pen.x = 0;
pen.y += font_size;
prev = 0;
continue;
} else if(i[0] == ' ' || glyph.id == 0) {
pen.x += font_size;
prev = 0;
continue;
}
glUniform3f(m_color_uniform, color.x, color.y, color.z);
glm::vec3 offset(glyph.bearing.x, -glyph.bearing.y, 0.0f);
glm::mat4 mvp = scene->getActiveProjectionMatrix() *
scene->getActiveViewMatrix() *
transform *
glm::translate(glm::mat4(1), -(pen + offset) * scene->getDPU()) *
glm::scale(glm::mat4(1), glm::vec3(glyph.dimensions.x * scene->getDPU(), glyph.dimensions.y * scene->getDPU(), 1.0f));
//fprintf(stderr, "Result: %f, %f, %f, %f\n", glyph.dimensions.x, glyph.dimensions.y, glyph.dimensions.x * scene->getDPU(), glyph.dimensions.y * scene->getDPU());
glUniformMatrix4fv(m_transform_uniform, 1, GL_FALSE, &mvp[0][0]);
glEnableVertexAttribArray(m_vertex_position);
glBindBuffer(GL_ARRAY_BUFFER, QUAD_BUFFER);
glVertexAttribPointer(m_vertex_position, 3, GL_FLOAT, GL_FALSE, 0, (void*)0);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, glyph.texture);
glUniform1i(m_texture_uniform, 0);
checkGLError();
glDrawArrays(GL_TRIANGLES, 0, 6);
checkGLError();
glDisableVertexAttribArray(m_vertex_position);
pen.x += glyph.advance;
//fprintf(stderr, "(%d)\n", (int)glyph.advance);
prev = index;
}
}
开发者ID:Df458,项目名称:DFEngine,代码行数:59,代码来源:Font.cpp
示例11: getLog
void
PhysicsDebugDrawer::drawAll
()
{
#ifdef DREAM_LOG
auto log = getLog();
log->debug( "Drawing {} lines" , mVertexBuffer.size()/2 );
#endif
preRender();
// Enable shader program
glUseProgram(mShaderProgram);
glBindVertexArray(mVAO);
ShaderRuntime::CurrentShaderProgram = mShaderProgram;
// Set the projection matrix
GLint projUniform = glGetUniformLocation(mShaderProgram, "projection");
if (projUniform == -1)
{
#ifdef DREAM_LOG
log->error( "Unable to find Uniform Location for projection" );
checkGLError();
#endif
return;
}
else
{
mat4 projectionMatrix = mCamera->getProjectionMatrix();
glUniformMatrix4fv(projUniform, 1, GL_FALSE, glm::value_ptr(projectionMatrix));
}
// Set the view matrix
GLint viewUniform = glGetUniformLocation(mShaderProgram, "view");
if (viewUniform == -1)
{
#ifdef DREAM_LOG
log->error( "Unable to find Uniform Location for view" );
checkGLError();
#endif
return;
}
else
{
mat4 viewMatrix = mCamera->getViewMatrix();
glUniformMatrix4fv(viewUniform, 1, GL_FALSE, glm::value_ptr(viewMatrix));
}
glBindBuffer(GL_ARRAY_BUFFER, mVBO);
glBufferData(GL_ARRAY_BUFFER, static_cast<GLint>(mVertexBuffer.size() * sizeof(PhysicsDebugVertex)), &mVertexBuffer[0], GL_STATIC_DRAW);
// Draw
glDrawArrays(GL_LINES, 0, static_cast<GLsizei>(mVertexBuffer.size()));
// Unbind
postRender();
// Clear old buffer
mVertexBuffer.clear();
}
开发者ID:BashEdThomps,项目名称:dream,代码行数:58,代码来源:PhysicsDebugDrawer.cpp
示例12: glBindTexture
void CGLfbo::CopyTexture(const uint32_t target) const
{
glBindTexture(GL_TEXTURE_2D, target);
checkGLError();
glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_R32F, 0, 0, mWidth, mHeight, 0);
checkGLError();
glBindTexture(GL_TEXTURE_2D, 0);
checkGLError();
}
开发者ID:skapusniak,项目名称:GLSLPlanet,代码行数:9,代码来源:GLfbo.cpp
示例13: FT_Get_Char_Index
void CBitmapFont::generateGlyph(U32 ch){
S32 pad = 3;
FT_GlyphSlot slot = mFace->glyph;
FT_Glyph glyph;
FT_UInt glyph_index;
glyph_index = FT_Get_Char_Index( mFace, (FT_ULong)ch );
FT_Load_Glyph( mFace, glyph_index, FT_LOAD_DEFAULT);
FT_Get_Glyph( slot, &glyph);
FT_Glyph_To_Bitmap(&glyph, ft_render_mode_normal, 0 ,1);
FT_BitmapGlyph bitmap = (FT_BitmapGlyph)glyph;
FT_Bitmap* source = &bitmap->bitmap;
S32 srcWidth = source->width;
S32 srcHeight = source->rows;
S32 srcPitch = source->pitch;
S32 dstWidth = srcWidth;
S32 dstHeight = srcHeight;
S32 dstPitch = srcPitch;
FT_BBox bbox;
FT_Glyph_Get_CBox( glyph, ft_glyph_bbox_pixels, &bbox);
unsigned char *src = source->buffer;
if(pen.x + srcWidth >= mTextureSize){
pen.x = 0;
pen.y += (getFontSize() * 64.0f / dpi) + pad;
}
glBindTexture(GL_TEXTURE_2D, curTex);checkGLError();
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);checkGLError();
glTexSubImage2D(GL_TEXTURE_2D, 0,
pen.x, pen.y,
srcWidth, srcHeight,
GL_ALPHA, GL_UNSIGNED_BYTE, src); checkGLError();
CTexCoord start(pen);
start /= mTextureSize;
CTexCoord end(pen.x + srcWidth, pen.y + srcHeight);
end /= mTextureSize;
//CVector2 pos(slot->bitmap_left, slot->bitmap_top);
CVector2 pos(bitmap->left, srcHeight - bitmap->top);
CVector2 size(srcWidth, srcHeight);
CVector2 advance(slot->advance.x >> 6, slot->advance.y >> 6);
mGlyphs[glyph_index] = new CBitmapGlyph(curTex, start, end, pos, size, advance);
pen.x += srcWidth + pad;
FT_Done_Glyph(glyph);
}
开发者ID:harkal,项目名称:sylphis3d,代码行数:57,代码来源:font.cpp
示例14: assert
void Render::drawVertices(const std::vector<inputData> &vertices)
{
assert(initialized);
glBufferSubData(GL_ARRAY_BUFFER,0, vertices.size() * sizeof(inputData),&vertices[0]);
checkGLError();
glDrawElements(GL_TRIANGLES,6 * vertices.size()/4,GL_UNSIGNED_SHORT,0);
checkGLError();
}
开发者ID:Lalaland,项目名称:GLUtil-old-,代码行数:9,代码来源:render.cpp
示例15: glDeleteTextures
CGLfbo::~CGLfbo() {
if(glIsTexture(mTexture)==GL_TRUE) {
glDeleteTextures(1, &mTexture);
checkGLError();
}
if(glIsFramebuffer(mFBO)==GL_TRUE) {
glDeleteFramebuffers(1, &mFBO);
checkGLError();
}
}
开发者ID:skapusniak,项目名称:GLSLPlanet,代码行数:10,代码来源:GLfbo.cpp
示例16: init2
void init2()
{
#ifdef OXYGINE_SDL
initGLExtensions(SDL_GL_GetProcAddress);
#endif
Point size = getDisplaySize();
log::messageln("display size: %d %d", size.x, size.y);
#if __S3E__
int glversion = s3eGLGetInt(S3E_GL_VERSION);
int major_gl = glversion >> 8;
if (major_gl == 2)
IVideoDriver::instance = new VideoDriverGLES20();
else
{
OX_ASSERT(!"gl version should be 2");
//IVideoDriver::instance = new VideoDriverGLES11();
}
#elif __FLASHPLAYER__
{
VideoDriverStage3D *vd = new VideoDriverStage3D();
vd->init();
IVideoDriver::instance = vd;
}
//IVideoDriver::instance = new VideoDriverNull();
#else
IVideoDriver::instance = new VideoDriverGLES20();
#endif
checkGLError();
IVideoDriver::instance->setDefaultSettings();
checkGLError();
Renderer::initialize();
Resources::registerResourceType(ResAtlas::create, "atlas");
Resources::registerResourceType(ResBuffer::create, "buffer");
Resources::registerResourceType(ResFontBM::create, "font");
Resources::registerResourceType(ResFontBM::createBM, "bmfc_font");
Resources::registerResourceType(ResFontBM::createSD, "sdfont");
Resources::registerResourceType(ResStarlingAtlas::create, "starling");
checkGLError();
log::messageln("oxygine initialized");
}
开发者ID:mattpbooth,项目名称:oxygine-framework,代码行数:55,代码来源:oxygine.cpp
示例17: drawGuiLogo
void drawGuiLogo() {
float pos[] = { 512 - 10 - 256, 384 - 64 };
float size[] = { 256, 64 };
float glpos = 64;
float glsize = 32;
float font_shift[] = { 0.5, 0.00 };
checkGLError("gui logo start");
rasonly(game->screen);
pos[0] *= game->screen->vp_w / 512.0;
pos[1] *= game->screen->vp_h / 384.0;
size[0] *= game->screen->vp_w / 512.0;
size[1] *= game->screen->vp_h / 384.0;
glpos *= game->screen->vp_w / 512.0;
glsize *= game->screen->vp_w / 512.0;
glEnable(GL_TEXTURE_2D);
if(game->settings->show_gl_logo == 1) {
glPushMatrix();
glTranslatef(pos[0] - glpos + glsize * font_shift[0],
pos[1] + glsize * font_shift[1], 0);
glScalef(glsize, glsize, glsize);
glColor3f(0.2, 0.4, 0.8);
ftxRenderString(gameFtx, "gl", 2);
glPopMatrix();
}
glBindTexture(GL_TEXTURE_2D, game->screen->textures[TEX_LOGO]);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_QUADS);
glTexCoord2f(0.0, 0.0);
glVertex2f(pos[0], pos[1]);
glTexCoord2f(1.0, 0.0);
glVertex2f(pos[0] + size[0], pos[1]);
glTexCoord2f(1.0, 1.0);
glVertex2f(pos[0] + size[0], pos[1] + size[1]);
glTexCoord2f(0.0, 1.0);
glVertex2f(pos[0], pos[1] + size[1]);
glEnd();
glDisable(GL_BLEND);
checkGLError("gui background end");
}
开发者ID:BackupTheBerlios,项目名称:gltron-svn,代码行数:55,代码来源:gui.c
示例18: switch
void HeightMap::keyEvent(SDL_Keysym &key, bool press) {
if (!press) {
return;
}
switch(key.sym) {
case SDLK_a:
if (_vertsPerSide < 1024) {
_vertsPerSide *= 2;
_totalVerts = _vertsPerSide * 2 * (_vertsPerSide - 1);
glUniform1i(_vpsLoc, _vertsPerSide);
checkGLError("Error encountered updating Vertices Per Side count: %s\n", Logger::LOG_WARN);
}
break;
case SDLK_z:
if (_vertsPerSide > 4) {
_vertsPerSide /= 2;
_totalVerts = _vertsPerSide * 2 * (_vertsPerSide - 1);
glUniform1i(_vpsLoc, _vertsPerSide);
checkGLError("Error encountered updating Vertices Per Side count: %s\n", Logger::LOG_WARN);
}
break;
case SDLK_d:
_drawMode = GL_TRIANGLE_STRIP;
running &= buildShaderProgram(VERTEX_SHADER, "heightmap-debugfrag.sdr");
loadUniforms();
break;
case SDLK_c:
_drawMode = GL_TRIANGLE_STRIP;
running &= buildShaderProgram(VERTEX_SHADER, FRAGMENT_SHADER);
loadUniforms();
break;
case SDLK_p:
glPointSize(2.0);
_drawMode = GL_POINTS;
running &= buildShaderProgram(VERTEX_SHADER, "heightmap-pointdebug.sdr");
loadUniforms();
break;
case SDLK_f:
_flatten = !_flatten;
glUniform1i(_flattenLoc, _flatten);
break;
case SDLK_s:
if (_zPlane < 4.0f) {
_zPlane += 0.1f;
}
break;
case SDLK_x:
if (_zPlane > 0.0f) {
_zPlane -= 0.1f;
}
break;
}
}
开发者ID:AdamLuchjenbroers,项目名称:GraphicsTinkering,代码行数:54,代码来源:heightmap.cpp
示例19: glUniformMatrix4fv
void ColorShaderProgram::updateUniforms(void){
glm::mat4 modelMatrix = *this->owner->getTransform()->getTransformMatrix();
glm::mat4 viewMatrix = *EngineData::getActiveCamera()->transform.getTransformMatrix();
glm::mat4 projectionMatrix = EngineData::getActiveCamera()->ProjectionMatrix;
glUniformMatrix4fv(this->modelMatrixUniform, 1, GL_FALSE, glm::value_ptr(modelMatrix));
checkGLError("Could not update uniforms1");
glUniformMatrix4fv(this->viewMatrixUniform, 1, GL_FALSE, glm::value_ptr(viewMatrix));
checkGLError("Could not update uniforms2");
glUniformMatrix4fv(this->projectionMatrixUniform, 1, GL_FALSE, glm::value_ptr(projectionMatrix));
checkGLError("Could not update uniforms3");
}
开发者ID:ulrichomega,项目名称:GameArchTerrain,代码行数:12,代码来源:ColorShaderProgram.cpp
示例20: glBindBuffer
// Orphan GL buffer
int modelEngine::orphanArrayBuffer(GLuint buffer, int size)
{
// Bind buffer
glBindBuffer(GL_ARRAY_BUFFER, buffer);
checkGLError();
// Orphan
glBufferData(GL_ARRAY_BUFFER, size, NULL, GL_STATIC_DRAW);
checkGLError();
// Unbind
glBindBuffer(GL_ARRAY_BUFFER, 0);
return checkGLError();
}
开发者ID:TESKAn,项目名称:hello_camera_teapot,代码行数:13,代码来源:ModelEngine.cpp
注:本文中的checkGLError函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论