gpt4 book ai didi

Java OpenGL 4.4 : Store/Push, 弹出当前程序管道

转载 作者:行者123 更新时间:2023-12-01 12:45:36 25 4
gpt4 key购买 nike

我有一个钩子(Hook)可以让我渲染我自己的模型。对于这个模型,我想使用自定义顶点着色器。现在的问题是外部程序仍然使用旧的着色器/程序方法(glUseProgram)进行渲染,并且我希望在切换到新的 4.4 ProgramPipeline 时保持程序兼容,同时提供相同的功能,即使用户不这样做不支持 OpenGL 4.x。现在我想我可以做以下事情:

//Start of hook
int currProgram = glGetInteger(GL_CURRENT_PROGRAM);
int currVertexShader;
int currPipeline;
if (supportsPipelines) {
glUseProgramStages(pipelineName, EXTERNAL_SHADER_BITS, currProgram);
glUseProgram(0);
// How do I store the currently selected pipeline, if any?
glBindProgramPipeline(currPipeline);
} else {
if(currProgram == 0) {
glUseProgram(programName);
} else {
// Fiddle with the shaders ?
}
}
// Do some rendering
// How do I pop back into the original configuration?

最佳答案

存储当前管道:

GLint prevPipeline = 0;
glGetIntegerv(GL_PROGRAM_PIPELINE_BINDING, &previousPipeline);
// assorted error checking

并恢复它:

glBindProgramPipeline(prevPipeline);

关于Java OpenGL 4.4 : Store/Push, 弹出当前程序管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24728439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com