本文整理汇总了C++中Texture::GetChannels方法的典型用法代码示例。如果您正苦于以下问题:C++ Texture::GetChannels方法的具体用法?C++ Texture::GetChannels怎么用?C++ Texture::GetChannels使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Texture
的用法示例。
在下文中一共展示了Texture::GetChannels方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
void gfx::GraphicsEngine::RenderActiveTarget(){
glViewport((GLint)(m_Width * 0.5f), BUTTON_SIZE, (GLint)(m_Width * 0.5f), m_Height - BUTTON_SIZE * 2);
glDisable(GL_DEPTH_TEST);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
ShaderProgram* spriteProg = g_ShaderBank.GetProgramFromHandle(m_SpriteShader);
spriteProg->Apply();
glBindVertexArray(0);
Texture* tex = g_MaterialBank.GetTexture(m_FrameBuffer.GetTexture());
float sizeH;
sizeH = tex->GetHeight() / tex->GetWidth();
tex->Apply(spriteProg->FetchUniform("g_Texture"), 0);
spriteProg->SetUniformVec4("g_Color", glm::vec4(1));
spriteProg->SetUniformVec4("g_Pos", glm::vec4(0.0f, 0.5f + sizeH * 0.5f, 0.0f,0.0f));
spriteProg->SetUniformVec4("g_Size", glm::vec4(1.0f, sizeH, 1.0f, 1.0f));
if (tex->GetChannels() == 1){
spriteProg->SetUniformBool("g_GreyScale", true);
}
else{
spriteProg->SetUniformBool("g_GreyScale", false);
}
glDrawArrays(GL_POINTS, 0, 1);
}