簡體   English   中英

QGLShaderProgram OpenGL着色器

[英]QGLShaderProgram OpenGL shaders

嘗試鏈接片段着色器時出現以下錯誤,

QGLShader :: compile(Fragment):0(4):錯誤C0000:語法錯誤,意外的“。”,在標記“。”處期望“ ::”。

我只是想實現一個簡單的片段着色器,將顏色設置為綠色。

我的頂點着色器(正在運行)文件名shader.vert

#version 430

in layout(location=0) vec2 position;

void main()
{
    gl_Position = vec4(position, 0.0, 1.0);
}

我的片段着色器shader.frag的代碼

#version 430

out vec4 finalColour;

void main()
{
    finalColour = vec4(0.0, 1.0, 0.0, 1.0);
}

鏈接QGLShaderProgram mProgram的代碼

//Add Shaders
if (!mProgram.addShaderFromSourceFile(QGLShader::Vertex, "shader.vert")) {
    error_msg("Vertex shader load failed");
}
if (!mProgram.addShaderFromSourceCode(QGLShader::Fragment, "testShader.frag")) {
    error_msg("Fragment shader load failed");
}
if (!mProgram.link()) {
    error_msg("Cannot link shaders");
}
mProgram.bind()

addShaderFromSourceCode(,code)的第二個參數

您必須在此處提供文件的內容而不是文件本身的名稱,您可以將此代碼放入函數中並使用它來加載文件

將整個ASCII文件讀入C ++ std :: string

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM