コード例 #1
0
ファイル: ZZoglShadersGLSL4.cpp プロジェクト: adi6190/pcsx2
void PutParametersInProgram(VERTEXSHADER* vs, FRAGMENTSHADER* ps) {

	if (dirty_common_buffer) {
		common_buffer->bind();
		common_buffer->upload((void*)&g_cs.uniform_buffer[g_cs.context]);
		dirty_common_buffer = false;
	}

	if (dirty_vertex_buffer) {
		vertex_buffer->bind();
		vertex_buffer->upload((void*)&vs->uniform_buffer[vs->context]);
		dirty_vertex_buffer = false;
	}

	if (dirty_fragment_buffer) {
		fragment_buffer->bind();
		fragment_buffer->upload((void*)&ps->uniform_buffer[ps->context]);
		dirty_fragment_buffer = false;
	}

#ifdef ENABLE_MARKER
	if (GLEW_GREMEDY_string_marker) glStringMarkerGREMEDY(0, format("FS(%d): enable texture", ps->program).c_str() );
#endif

	g_cs.enable_texture();
	ps->enable_texture();
	// By default enable the unit 0, so I have the guarantee that any
	// texture command won't change current binding of others unit
	glActiveTexture(GL_TEXTURE0);
}
コード例 #2
0
ファイル: ZZoglShadersGLSL4.cpp プロジェクト: adi6190/pcsx2
// The same function for texture, also to cgGLEnable
void ZZshGLSetTextureParameter(ZZshParameter param, GLuint texobj, const char* name) {
#ifdef ENABLE_MARKER
	if (GLEW_GREMEDY_string_marker) glStringMarkerGREMEDY(0, format("CS: texture %d, param %d", texobj, param).c_str() );
#endif

	g_cs.set_texture(param, texobj);
}
コード例 #3
0
ファイル: ZZoglShadersGLSL4.cpp プロジェクト: adi6190/pcsx2
void ZZshSetParameter4fv(ZZshParameter param, const float* v, const char* name) {
	g_cs.ZZshSetParameter4fv(param, v);
	dirty_common_buffer = true;
#ifdef ENABLE_MARKER
	if (GLEW_GREMEDY_string_marker) glStringMarkerGREMEDY(0, format("CS: uniform (%s) (%f)", name, *v).c_str() );
#endif
}
コード例 #4
0
ファイル: ZZoglShadersGLSL4.cpp プロジェクト: adi6190/pcsx2
void ZZshGLSetTextureParameter(ZZshShaderLink prog, ZZshParameter param, GLuint texobj, const char* name) {
	FRAGMENTSHADER* shader = (FRAGMENTSHADER*)prog.link;
#ifdef ENABLE_MARKER
	if (GLEW_GREMEDY_string_marker) glStringMarkerGREMEDY(0, format("FS(%d):texture %d, param %d", shader->program, texobj, param).c_str() );
#endif

	shader->set_texture(param, texobj);
}
コード例 #5
0
ファイル: sdl_glimp.cpp プロジェクト: Kangz/Unvanquished
void GLimp_LogComment(const char* comment) {
    static char buf[4096];

    if (r_logFile->integer && GLEW_GREMEDY_string_marker) {
        // copy string and ensure it has a trailing '\0'
        Q_strncpyz(buf, comment, sizeof(buf));

        glStringMarkerGREMEDY(strlen(buf), buf);
    }
}
コード例 #6
0
ファイル: DebugMarker.cpp プロジェクト: JanDupal/magnum
void DebugMarker::markImplementationDebugger(const std::string& string) {
    /** @todo Re-enable when extension wrangler is available for ES */
    #ifndef MAGNUM_TARGET_GLES
    glStringMarkerGREMEDY(string.length(), string.c_str());
    #else
    #if 0
    glInsertEventMarkerEXT(string.length(), string.c_str());
    #else
    static_cast<void>(string);
    #endif
    #endif
}
コード例 #7
0
ファイル: gfx_gl_log.c プロジェクト: Peanhua/diamond-girl
void gfx_gl_log(char * fmt, ...)
{
  if(GLEW_GREMEDY_string_marker)
    {
      va_list ap;
      char buf[1024];
      
      va_start(ap, fmt);
      vsnprintf(buf, sizeof buf, fmt, ap);
      va_end(ap);
      glStringMarkerGREMEDY(0, buf);
    }
}
コード例 #8
0
ファイル: ZZoglShadersGLSL4.cpp プロジェクト: adi6190/pcsx2
// This is helper of cgGLSetParameter4fv, made for debug purpose.
// Name could be any string. We must use it on compilation time, because erroneus handler does not
// return name
void ZZshSetParameter4fv(ZZshShaderLink& prog, ZZshParameter param, const float* v, const char* name) {
	if (prog.isFragment) {
		FRAGMENTSHADER* shader = (FRAGMENTSHADER*)prog.link;
		shader->ZZshSetParameter4fv(param, v);
		dirty_fragment_buffer = true;
	} else {
		VERTEXSHADER* shader = (VERTEXSHADER*)prog.link;
		shader->ZZshSetParameter4fv(param, v);
		dirty_vertex_buffer = true;
	}
#ifdef ENABLE_MARKER
	if (GLEW_GREMEDY_string_marker) glStringMarkerGREMEDY(0, format("prog: uniform (%s) (%f)", name, *v).c_str() );
#endif
}
コード例 #9
0
void GLimp_LogComment( int level, char *comment, ... ) 
{
	if( level && level > r_logLevel->integer )
		return;

	if( GLEW_GREMEDY_string_marker )
	{
		size_t len;
		char msg[2048];
		va_list vl;

		va_start( vl, comment );
		len = vsnprintf( msg, sizeof( msg ) - 1, comment, vl );
		va_end( vl );

		if( len == -1 )
			len = sizeof( msg ) - 1;

		glStringMarkerGREMEDY( len, msg ); 
	}
}
コード例 #10
0
ファイル: Profile_gl3.cpp プロジェクト: tsiru/pcsx2
void GPU_Profile::dump(bool flush)
{
	u32 high_limit;
	if (flush) high_limit = 1;
	else	   high_limit = 1000;

    while (datas.size() > high_limit) {
        ProfileInfo data_start = datas.front();
        datas.pop_front();
        ProfileInfo data_stop = datas.front();
        datas.pop_front();

        u32 gpu_time = read_diff_timers(data_start.timer, data_stop.timer);

#ifdef ENABLE_MARKER
		if (GLEW_GREMEDY_string_marker) glStringMarkerGREMEDY(0, format("Time %6dus", gpu_time).c_str());
#else
        fprintf(stderr, "Frame %d (%d): %6dus\n", data_start.frame, data_start.draw, gpu_time);
#endif
    }
}
コード例 #11
0
ファイル: glrenderer.cpp プロジェクト: dkoerner/mitsuba
void GLRenderer::debugString(const std::string &text) {
	if (GLEW_GREMEDY_string_marker)
		glStringMarkerGREMEDY(0, text.c_str());
}
コード例 #12
0
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_GREMEDYStringMarker_nglStringMarkerGREMEDY(JNIEnv *env, jclass clazz, jint len, jobject string, jint string_position, jlong function_pointer) {
	const GLbyte *string_address = ((const GLbyte *)(*env)->GetDirectBufferAddress(env, string)) + string_position;
	glStringMarkerGREMEDYPROC glStringMarkerGREMEDY = (glStringMarkerGREMEDYPROC)((intptr_t)function_pointer);
	glStringMarkerGREMEDY(len, string_address);
}