• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ checkGlError函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中checkGlError函数的典型用法代码示例。如果您正苦于以下问题:C++ checkGlError函数的具体用法?C++ checkGlError怎么用?C++ checkGlError使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了checkGlError函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: Java_com_ti_omap4_android_camera_panorama_MosaicRenderer_transferGPUtoCPU

JNIEXPORT void JNICALL Java_com_ti_omap4_android_camera_panorama_MosaicRenderer_transferGPUtoCPU(
    JNIEnv * env, jobject obj)
{
    double t0, t1, time_c;

    gYVURenderer[LR].DrawTexture();
    gYVURenderer[HR].DrawTexture();

    sem_wait(&gPreviewImage_semaphore);
    // Bind to the input LR FBO and read the Low-Res data from there...
    glBindFramebuffer(GL_FRAMEBUFFER, gBufferInputYVU[LR].GetFrameBufferName());
    t0 = now_ms();
    glReadPixels(0,
                 0,
                 gBufferInput[LR].GetWidth(),
                 gBufferInput[LR].GetHeight(),
                 GL_RGBA,
                 GL_UNSIGNED_BYTE,
                 gPreviewImage[LR]);

    checkGlError("glReadPixels LR");

    // Bind to the input HR FBO and read the high-res data from there...
    glBindFramebuffer(GL_FRAMEBUFFER, gBufferInputYVU[HR].GetFrameBufferName());
    t0 = now_ms();
    glReadPixels(0,
                 0,
                 gBufferInput[HR].GetWidth(),
                 gBufferInput[HR].GetHeight(),
                 GL_RGBA,
                 GL_UNSIGNED_BYTE,
                 gPreviewImage[HR]);

    checkGlError("glReadPixels HR");

    sem_post(&gPreviewImage_semaphore);
}
开发者ID:qqedfr,项目名称:kitkat-2,代码行数:37,代码来源:mosaic_renderer_jni.cpp


示例2: createProgram

GLuint createProgram(const char* pVertexSource, const char* pFragmentSource) {
    GLuint vertexShader = loadShader(GL_VERTEX_SHADER, pVertexSource);
    if (!vertexShader) {
        return 0;
    }

    GLuint pixelShader = loadShader(GL_FRAGMENT_SHADER, pFragmentSource);
    if (!pixelShader) {
        return 0;
    }

    GLuint program = glCreateProgram();
    if (program) {
        glAttachShader(program, vertexShader);
        checkGlError("glAttachShader");
        glAttachShader(program, pixelShader);
        checkGlError("glAttachShader");
        glLinkProgram(program);
        GLint linkStatus = GL_FALSE;
        glGetProgramiv(program, GL_LINK_STATUS, &linkStatus);
        if (linkStatus != GL_TRUE) {
            GLint bufLength = 0;
            glGetProgramiv(program, GL_INFO_LOG_LENGTH, &bufLength);
            if (bufLength) {
                char* buf = (char*) malloc(bufLength);
                if (buf) {
                    glGetProgramInfoLog(program, bufLength, NULL, buf);
                    ALOGE("Could not link program:\n%s\n", buf);
                    free(buf);
                }
            }
            glDeleteProgram(program);
            program = 0;
        }
    }
    return program;
}
开发者ID:MIPS,项目名称:frameworks-native,代码行数:37,代码来源:gl_code.cpp


示例3: createProgram

GLuint createProgram(std::string pVertexSource, std::string pFragmentSource) {
    GLuint vertexShader = loadShader(GL_VERTEX_SHADER, pVertexSource.c_str());
    if (!vertexShader) {
        return 0;
    }

    GLuint pixelShader = loadShader(GL_FRAGMENT_SHADER, pFragmentSource.c_str());
    if (!pixelShader) {
        return 0;
    }

    GLuint program = glCreateProgram();
    if (program) {
        glAttachShader(program, vertexShader);
        checkGlError("glAttachShader");
        glAttachShader(program, pixelShader);
        checkGlError("glAttachShader");
        glLinkProgram(program);
        GLint linkStatus = GL_FALSE;
        glGetProgramiv(program, GL_LINK_STATUS, &linkStatus);
        if (linkStatus != GL_TRUE) {
            GLint bufLength = 0;
            glGetProgramiv(program, GL_INFO_LOG_LENGTH, &bufLength);
            if (bufLength) {
            	char *buf = new char[bufLength];
                if (buf) {
                    glGetProgramInfoLog(program, bufLength, 0, buf);
                    debug_print("Could not link program:\n%s\n", buf);
                    delete buf;
                }
            }
            glDeleteProgram(program);
            program = 0;
        }
    }
    return program;
}
开发者ID:mls-m5,项目名称:sdl2-makefile-project,代码行数:37,代码来源:shaderprogram.cpp


示例4: setupHandles

void setupHandles(){
	gMVP					= glGetUniformLocation(gProgram, "modelViewMatrix");
	gModelMatrix 			= glGetUniformLocation(gProgram, "ModelMatrix");
	gNomralMatrix 			=  glGetUniformLocation(gProgram, "NomralMatrix");
	gS_Texture			 	= glGetUniformLocation(gProgram, "s_texture");
	gLightSource			= glGetUniformLocation(gProgram, "lightSource");
	gEye					= glGetUniformLocation(gProgram, "eye");
//	gLightsCount 			= glGetUniformLocation(gProgram, "lightsCount");
//	fLightsCount 			= glGetUniformLocation(gProgram, "fragLightsCount");
	gvPositionHandle 		= glGetAttribLocation(gProgram, "vPosition");
	gvNormal				= glGetAttribLocation(gProgram, "vNormal");
	gvTexture 				= glGetAttribLocation(gProgram, "vTexture");

	checkGlError("glGetAttribLocation");
}
开发者ID:ntkachov,项目名称:ElectraEngine,代码行数:15,代码来源:gl_code.cpp


示例5: glUseProgram

    void GLES2Lesson::prepareShaderProgram() {
        glUseProgram(gProgram);
        checkGlError("glUseProgram");

        glUniform1i(samplerUniformPosition, twinkling ? 1 : 0);

        glActiveTexture(GL_TEXTURE0);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

        glActiveTexture(GL_TEXTURE1);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
        glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);

    }
开发者ID:TheFakeMontyOnTheRun,项目名称:nehe-ndk-gles20,代码行数:15,代码来源:GLES2Lesson.cpp


示例6: useProgram

	void VertexArrayObject::bind() const {
		useProgram();
		switch (vaoSupported_) {
			case VaoSupported::CHECK_SUPPORTED:
				if (mw::Window::getOpenGlMajorVersion() >= 3) {
					vaoSupported_ = VaoSupported::SUPPORTED;
					// Fall trough to next case.
				} else {
					vaoSupported_ = VaoSupported::NOT_SUPPORTED;
					bindBuffer();
					setVertexAttribPointer();
					break;
				}
			case VaoSupported::SUPPORTED:
				if (*vao_ == 0) { // Create the vertex array only the first time.
					glGenVertexArrays(1, &*vao_);
					glBindVertexArray(*vao_);
					checkGlError();
					// Remove the block to unneeded calls to buffer changes.
					VertexBufferObject::setIgnoreCurrentBind(true);
					bindBuffer();
					// Restore the block.
					VertexBufferObject::setIgnoreCurrentBind(false);
					currentVertexArrayObject = *vao_;
					setVertexAttribPointer();
				} else {
					glBindVertexArray(*vao_);
					checkGlError();
				}
				break;
			case VaoSupported::NOT_SUPPORTED:
				bindBuffer();
				setVertexAttribPointer();
				break;
		}
	}
开发者ID:mwthinker,项目名称:MwLibrary2,代码行数:36,代码来源:vertexarrayobject.cpp


示例7: glBindBuffer

int32_t TerrainSimRenderer::render(GLuint posXYHandle, GLuint normalHeightHandle)
{
    glBindBuffer(GL_ARRAY_BUFFER, m_positionXZVBO);
    glVertexAttribPointer(posXYHandle, 2, GL_FLOAT, GL_FALSE, 0, 0);
    glBindBuffer(GL_ARRAY_BUFFER, m_NormalsAndHeightsVBO);
    glVertexAttribPointer(normalHeightHandle, 4, GL_FLOAT, GL_FALSE, 0, 0);
    glBindBuffer(GL_ARRAY_BUFFER, 0);
    checkGlError("glBindBuffer vertices", "TerrainSimRenderer::render()");

    glEnableVertexAttribArray(posXYHandle);
    glEnableVertexAttribArray(normalHeightHandle);
    checkGlError("attrs bound", "TerrainSimRenderer::render()");

    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_IBO);
    checkGlError("glBindBuffer IBO", "TerrainSimRenderer::render()");

    glDrawElements(GL_TRIANGLES, m_indexCount, GL_UNSIGNED_SHORT, 0);
    glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);

    glDisableVertexAttribArray(posXYHandle);
    glDisableVertexAttribArray(normalHeightHandle);
    
    return m_indexCount;
}
开发者ID:BitRussell,项目名称:OpenGLSamples,代码行数:24,代码来源:TerrainSimRenderer.cpp


示例8: gles2_init

void gles2_init() 
{
    dt_lock (&mutex);
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    checkGlError("glClearColor");

    memset(&gl_ctx,0,sizeof(gles2_ctx_t));
    gl_ctx.simpleProgram = buildProgram(VERTEX_SHADER, FRAG_SHADER);  
    glUseProgram(gl_ctx.simpleProgram); 
    glGenTextures(1, &gl_ctx.g_texYId);  
    glGenTextures(1, &gl_ctx.g_texUId);  
    glGenTextures(1, &gl_ctx.g_texVId); 
    checkGlError("glGenTextures");


    char *glExtension = (char *)glGetString(GL_EXTENSIONS);
    if(strstr(glExtension, "GL_AMD_compressed_ATC_texture") != NULL)
        gl_ctx.vertex_index = 1; 
    else
        gl_ctx.vertex_index = 0;
    gl_ctx.initialized = 1;
    dt_unlock (&mutex);
    __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, "opengl esv2 init ok, ext:%s\n ", glExtension);
}
开发者ID:mic101,项目名称:dttv-android,代码行数:24,代码来源:android_opengl.cpp


示例9: CreateGLProgram

GLuint	CreateGLProgram(const char * vShader, const char * fShader){
	GLuint vertexShader	= LoadShader(GL_VERTEX_SHADER,	 vShader);
	GLuint pixelShader	= LoadShader(GL_FRAGMENT_SHADER, fShader);

	GLuint program		= glCreateProgram();
	if(!program){
		LOGI(" Problems with ProgramObject");
		return 0;
	}
	glAttachShader(program, vertexShader );				checkGlError(" glAttachShader: VertexShader");
	glAttachShader(program, pixelShader );				checkGlError(" glAttachShader: FragmentShader");
	
	glLinkProgram(program);								checkGlError(" glLinkProgram");

	// Check the link status
	GLint	linked = GL_FALSE;
	glGetProgramiv( program, GL_LINK_STATUS, &linked );	
	
        if (linked != GL_TRUE) {
		GLint bufLength = 0;
		glGetProgramiv(program, GL_INFO_LOG_LENGTH, &bufLength);
		if(bufLength) {
			char* buf = (char*) malloc(bufLength);
			if (buf) {
				glGetProgramInfoLog(program, bufLength, NULL, buf);
				LOGE("Could not link program:\n%s\n", buf);
				free(buf);
			}
		}
		
		glDeleteProgram(program);
		program = 0;
        }	
	
	return program;
}
开发者ID:Ramon-Wong,项目名称:NDK-Activity-OpenglES2.0,代码行数:36,代码来源:Utils.c


示例10: buildProgram

static GLuint buildProgram(const char* vertexShaderSource,  
        const char* fragmentShaderSource)   
{  
    GLuint vertexShader = buildShader(vertexShaderSource, GL_VERTEX_SHADER);  
    GLuint fragmentShader = buildShader(fragmentShaderSource, GL_FRAGMENT_SHADER);  
    GLuint programHandle = glCreateProgram();  
  
    if (programHandle)  
    {  
        glAttachShader(programHandle, vertexShader);  
        checkGlError("glAttachShader");  
        glAttachShader(programHandle, fragmentShader);  
        checkGlError("glAttachShader");  
        glLinkProgram(programHandle);  
  
        GLint linkStatus = GL_FALSE;  
        glGetProgramiv(programHandle, GL_LINK_STATUS, &linkStatus);  
        if (linkStatus != GL_TRUE) {  
            GLint bufLength = 0;  
            glGetProgramiv(programHandle, GL_INFO_LOG_LENGTH, &bufLength);  
            if (bufLength) {  
                char* buf = (char*) malloc(bufLength);  
                if (buf) {  
                    glGetProgramInfoLog(programHandle, bufLength, NULL, buf);  
		            __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG," error: Could not link programe: %s\n", buf);
                    free(buf);  
                }  
            }  
            glDeleteProgram(programHandle);  
            programHandle = 0;  
        }  
  
    }  
  
    return programHandle;  
}
开发者ID:mic101,项目名称:dttv-android,代码行数:36,代码来源:android_opengl.cpp


示例11: clearBuffers

    void GLES2Lesson::render() {
        clearBuffers();
        prepareShaderProgram();
        setPerspective();
        resetTransformMatrices();

        glUniformMatrix4fv(modelMatrixAttributePosition, 1, false, &glm::mat4(1.0f)[0][0]);
        checkGlError("before drawing");


        glEnableVertexAttribArray(vertexAttributePosition);
        glEnableVertexAttribArray(textureCoordinatesAttributePosition);

        for (auto &pair  : mBatches) {
            glBindTexture(GL_TEXTURE_2D, pair.first);
            pair.second->draw(vertexAttributePosition, textureCoordinatesAttributePosition);
        }

        glDisableVertexAttribArray(vertexAttributePosition);
        glDisableVertexAttribArray(textureCoordinatesAttributePosition);


        checkGlError("after drawing");
    }
开发者ID:TheFakeMontyOnTheRun,项目名称:nehe-ndk-gles20,代码行数:24,代码来源:GLES2Lesson.cpp


示例12: initShader

// Create a shader program
int
ShaderUtils::createProgramFromBuffer(const char* pszVertexSource, const char* pszFragmentSource)
{
    GLuint program = 0;
    GLuint vertexShader = initShader(GL_VERTEX_SHADER, pszVertexSource);
    GLuint fragmentShader = initShader(GL_FRAGMENT_SHADER, pszFragmentSource);
    
    if (vertexShader && fragmentShader) {
        program = glCreateProgram();
        
        if (program) {
            glAttachShader(program, vertexShader);
            checkGlError("glAttachShader");
            glAttachShader(program, fragmentShader);
            checkGlError("glAttachShader");
            
            glLinkProgram(program);
            GLint linkStatus;
            glGetProgramiv(program, GL_LINK_STATUS, &linkStatus);
            
            if (!GL_TRUE == linkStatus) {
                GLint infoLen = 0;
                glGetProgramiv(program, GL_INFO_LOG_LENGTH, &infoLen);
                
                if (infoLen) {
                    char* buf = new char[infoLen];
                    glGetProgramInfoLog(program, infoLen, NULL, buf);
                    printf("Could not link program %d: %s\n", program, buf);
                    delete[] buf;
                }
            }
        }
    }
    
    return program;
}
开发者ID:galexcode,项目名称:AR_Image_Recognition-sample-ios,代码行数:37,代码来源:ShaderUtils.cpp


示例13: setupGraphics

bool setupGraphics(struct android_app* state) {

	const EGLint attribs[] = { EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_BLUE_SIZE,
			8, EGL_GREEN_SIZE, 8, EGL_RED_SIZE, 8, EGL_NONE };
	EGLint contextAttrs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE };

	EGLint w, h, dummy, format;
	EGLint numConfigs;
	EGLConfig config;

	EGLContext context;

	display = eglGetDisplay(EGL_DEFAULT_DISPLAY );

	eglInitialize(display, 0, 0);

	defaultEGLChooser(display, config);

	//eglChooseConfig(display, attribs, &config, 1, &numConfigs);

	eglGetConfigAttrib(display, config, EGL_NATIVE_VISUAL_ID, &format);

	context = eglCreateContext(display, config, NULL, contextAttrs);

	ANativeWindow_setBuffersGeometry(state->window, 0, 0, format);

	surface = eglCreateWindowSurface(display, config, state->window, NULL);

	if (eglMakeCurrent(display, surface, surface, context) == EGL_FALSE) {
		LOGW("Unable to eglMakeCurrent");
		return -1;
	}

	eglQuerySurface(display, surface, EGL_WIDTH, &w);
	eglQuerySurface(display, surface, EGL_HEIGHT, &h);

	printGLString("Version", GL_VERSION);
	printGLString("Vendor", GL_VENDOR);
	printGLString("Renderer", GL_RENDERER);
	printGLString("Extensions", GL_EXTENSIONS);
	LOGI("setupGraphics(%d, %d)", w, h);
	render->SetPivotPoint(w * 0.5f, h * 0.5f);
	std::string resourcePath("/sdcard");
	render->SetResourcePath(resourcePath);
	render->Initialize(w, h);
	checkGlError("glViewport");
	return true;
}
开发者ID:ikryukov,项目名称:ShadowsAndroid,代码行数:48,代码来源:Shadows.cpp


示例14: LOGD

bool App::setupGraphics(int w, int h) {
	this->screenWidth = w;
	this->screenHeight = h;
	LOGD("App", "width: %d, height: %d", w, h);
    printGLString("Version", GL_VERSION);
    printGLString("Vendor", GL_VENDOR);
    printGLString("Renderer", GL_RENDERER);
    printGLString("Extensions", GL_EXTENSIONS);

    LOGI("App", "setupGraphics(%d, %d)", w, h);
    Director::shared->start();

    glViewport(0, 0, w, h);
    checkGlError("glViewport");

    float half_width = (float) w * 0.5f;
    float half_height = (float) h * 0.5f;
    Director::shared->setMatrixMode(PROJECTION_MATRIX);
    Director::shared->loadIdentity();
	Director::shared->setPerspective(60.0f,
			(float) App::shared->getScreenWidth() / (float) App::shared->getScreenHeight(),
			0.01f,
			3550.0f,
			0.0f);
	glDisable(GL_CULL_FACE);
//    Director::shared->setOrthoGraphic2D(-half_width,
//    							 	 	 half_width,
//    							 	 	-half_height,
//    							 	 	 half_height);
    Director::shared->translate(-half_width, -half_height, 0.0f);
//    vec3 c = {0.0f, 0.0f, 0.0f };	// center
    vec3 c = { 0.0f, 0.0f, 0.0f };	// center
    	vec3 u = { 0.0f, 0.0f, -1.0f };	// up

//    	vec3 e = { 0.0f, 0.001f, 545.0f }; // eye
    	vec3 e = { 0.0f, 0.0001f, 2.2566f * w }; // eye
    //	vec3 c = { App::shared->getScreenWidth() / 2.0f, App::shared->getScreenHeight() / 2.0f, 0.0f };	// center
    //	vec3 u = { 0.0f, 0.0f, 1.0f };	// up
    	Director::shared->lookAt(&e, &c, &u);
//    glDisable(GL_DEPTH_TEST);
//    glDepthMask(GL_FALSE);

    isRenderable = 1;
    glClearColor(1.0f, 0.0f, 0.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    return true;
}
开发者ID:conghd,项目名称:TExample,代码行数:48,代码来源:App.cpp


示例15: checkFramebufferStatus

void checkFramebufferStatus(const char* name) {
    GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
    if (status == 0) {
      LOGE("Checking completeness of Framebuffer:%s", name);
      checkGlError("checkFramebufferStatus (is the target \"GL_FRAMEBUFFER\"?)");
    } else if (status != GL_FRAMEBUFFER_COMPLETE) {
        const char* msg = "not listed";
        switch (status) {
          case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT: msg = "attachment"; break;
          case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS: msg = "dimensions"; break;
          case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: msg = "missing attachment"; break;
          case GL_FRAMEBUFFER_UNSUPPORTED: msg = "unsupported"; break;
        }
        LOGE("Framebuffer: %s is INCOMPLETE: %s, %x", name, msg, status);
    }
}
开发者ID:MWisBest,项目名称:android_external_Focal,代码行数:16,代码来源:mosaic_renderer_jni.cpp


示例16: setupGraphics

bool setupGraphics(int w, int h) {



    printGLString("Version", GL_VERSION);
    printGLString("Vendor", GL_VENDOR);
    printGLString("Renderer", GL_RENDERER);
    printGLString("Extensions", GL_EXTENSIONS);

    LOGI("setupGraphics(%d, %d)", w, h);
    /*gProgram = createProgram(gVertexShader, gFragmentShader);
    if (!gProgram) {
        LOGE("Could not create program.");
        return false;
    }
    gvPositionHandle = glGetAttribLocation(gProgram, "vPosition");
    checkGlError("glGetAttribLocation");
    LOGI("glGetAttribLocation(\"vPosition\") = %d\n",
            gvPositionHandle);
*/
    Effect* effect = Assets::getInstance().CreateEffect("Default");
    sprite.SetEffect(effect);
    effect->SetSource(Assets::DefaultVertexShader, Assets::DefaultFragmentShader);
    effect->CompileAndLink();

    //std::vector<unsigned char> image;
	unsigned long iw=4;
	unsigned long ih;
	h=4;
	std::vector<unsigned char> image(16*4);
	for (int k=0; k< 16; k++)
	{
		for (int j=0; j< 4; j++)
			image[k*4+j] = 0;
		image[k*4] = 255;
		image[k*4+3] = 255;
	}

	Texture* texture = Assets::getInstance().CreateTexture("Default");
	texture->SetImageBuffer(image, 4, 4);
	texture->GPULoad();
	sprite.SetTexture(texture);

    glViewport(0, 0, w, h);
    checkGlError("glViewport");
    return true;
}
开发者ID:eysteinn,项目名称:Fuzzy,代码行数:47,代码来源:gl_code.cpp


示例17: checkGlError

bool particleRenderer::init() {
	if (!shader.init()) return false;

	if (!system.init()) return false;

	TEX_PARTICLE_TEXTURE.loadSurface(loadImageFromResource("IDT_PARTICLE_TEXTURE"));

	if (shader.bindProgram()) {
		shader.setTexSize(0.5f);
		shader.setParticleTexture(0);
		shader.unbindProgram();
	} else {
		return false;
	}

	return checkGlError("Failed to init particle system renderer");
}
开发者ID:salvoilmiosi,项目名称:PinoMaze,代码行数:17,代码来源:renderer_particle.cpp


示例18: display

void display ()
{
	/////////////////////////////////////////////////////////
	//Color + Matrix setup

	glClearColor( 1,1,1,1 );
	glClear( GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );

	Shader *shader = shaderDefault;
	shader->use();

	Int32 uModelview = shader->program->getUniform( "modelview" );
	glUniformMatrix4fv( uModelview, 1, false, (GLfloat*) matModelView.top().m );

	Int32 uProjection = shader->program->getUniform( "projection" );
	glUniformMatrix4fv( uProjection, 1, false, (GLfloat*) matProjection.top().m );

	Int32 uColor = shaderDefault->program->getUniform( "color" );
	glUniform4f( uColor, 1.0f, 0.0f, 0.0f, 0.0f );

	//////////////////////////////////////////////////////////
	//Render

	renderQuad( shaderDefault, Vec2(100,100), Vec2(200,200) );

	//////////////////////////////////////////////////////////
	//FPS

	//Add to fps
	static int fps = 0;
	fps++;

	//Check if 1 second elapsed
	static int lastUpdate = glutGet( GLUT_ELAPSED_TIME );
	int now = glutGet( GLUT_ELAPSED_TIME );
	if (now - lastUpdate > 1000)
	{
		std::cout << "Fps: " << fps << std::endl;
		lastUpdate = now;
		fps = 0;
	}

	//Check for errors
	checkGlError( "display end" );
	glutSwapBuffers();
}
开发者ID:Sudoka,项目名称:RenderBase,代码行数:46,代码来源:rvgMain.cpp


示例19: LOGE

void GlHelper::init() {
	gProgram = GlHelper::createProgram(VERTEX_SHADER, FRAG_SHADER);
	if (!gProgram) {
		LOGE("Could not create program.");
	}
	this->gPositionHandle = glGetAttribLocation(gProgram, "vPosition");
	GlHelper::checkGlError("glGetAttribLocation");
	LOG("glGetAttribLocation(\"vPosition\") = %d\n", this->gPositionHandle);

	glViewport(0, 0, this->nGlViewWidth, this->nGlViewHeight);
	checkGlError("glViewport");

	glUseProgram(gProgram);
	glGenTextures(1, &gTexYId);
	glGenTextures(1, &gTexUId);
	glGenTextures(1, &gTexVId);
}
开发者ID:insiva,项目名称:VideoChat,代码行数:17,代码来源:GlHelper.cpp


示例20: createProgram

GLuint createProgram(const char* vtxSrc, const char* fragSrc) {
    GLuint vtxShader = 0;
    GLuint fragShader = 0;
    GLuint program = 0;
    GLint linked = GL_FALSE;

    vtxShader = createShader(GL_VERTEX_SHADER, vtxSrc);
    if (!vtxShader)
        goto exit;

    fragShader = createShader(GL_FRAGMENT_SHADER, fragSrc);
    if (!fragShader)
        goto exit;

    program = glCreateProgram();
    if (!program) {
        checkGlError("glCreateProgram");
        goto exit;
    }
    glAttachShader(program, vtxShader);
    glAttachShader(program, fragShader);

    glLinkProgram(program);
    glGetProgramiv(program, GL_LINK_STATUS, &linked);
    if (!linked) {
        ALOGE("Could not link program");
        GLint infoLogLen = 0;
        glGetProgramiv(program, GL_INFO_LOG_LENGTH, &infoLogLen);
        if (infoLogLen) {
            GLchar* infoLog = (GLchar*)malloc(infoLogLen);
            if (infoLog) {
                glGetProgramInfoLog(program, infoLogLen, NULL, infoLog);
                ALOGE("Could not link program:\n%s\n", infoLog);
                free(infoLog);
            }
        }
        glDeleteProgram(program);
        program = 0;
    }

exit:
    glDeleteShader(vtxShader);
    glDeleteShader(fragShader);
    return program;
}
开发者ID:aam,项目名称:compute-gles31,代码行数:45,代码来源:gles3jni.cpp



注:本文中的checkGlError函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ checkHaveDocument函数代码示例发布时间:2022-05-30
下一篇:
C++ checkGLcall函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap