ShaderProgram::ShaderProgram(ShaderFile& vertex_shader, ShaderFile& fragment_shader) { create(); combineShaderPrograms(vertex_shader, fragment_shader); bindFragmentDataLocation(); link(); }
void AlphaMaskTextureShader::load() { addVertexShader("ark2d/shaders/alphamask/texture-glsl150-vertex.txt"); addFragmentShader("ark2d/shaders/alphamask/texture-glsl150-fragment.txt"); bindAttributeLocation(0, "ark_TextureId"); bindAttributeLocation(1, "ark_VertexPositionIn"); bindAttributeLocation(2, "ark_VertexNormalIn"); bindAttributeLocation(3, "ark_VertexTexCoordIn"); bindAttributeLocation(4, "ark_VertexColorIn"); bindFragmentDataLocation(0, "ark_FragColor"); link(); linkDX(); showAnyGlErrorAndExitMacro(); ShaderStore::getInstance()->addShader(m_programId, this); RendererState::start(RendererState::SHADER, getId()); ark_ModelMatrix = getUniformVariable("ark_ModelMatrix"); ark_ViewMatrix = getUniformVariable("ark_ViewMatrix"); ark_ProjectionMatrix = getUniformVariable("ark_ProjectionMatrix"); ark_NormalMatrix = getUniformVariable("ark_NormalMatrix"); ark_TextureId = getUniformVariable("ark_TextureId"); ark_VertexPositionIn = 1; ark_VertexNormalIn = 2; ark_VertexTexCoordIn = 3; ark_VertexColorIn = 4; RendererState::start(RendererState::NONE); }
void StencilShader::load() { if (ARK2D::getPlatform() == ARK2D::PLATFORM_ANDROID) { addVertexShader("ark2d/shaders/stencil/texture-glsles100-vertex.txt"); addFragmentShader("ark2d/shaders/stencil/texture-glsles100-fragment.txt"); } else { addVertexShader("ark2d/shaders/stencil/texture-glsl150-vertex.txt"); bool err1 = hasError(); addFragmentShader("ark2d/shaders/stencil/texture-glsl150-fragment.txt"); bool err2 = hasError(); if (err1 || err2) { addVertexShader("ark2d/shaders/stencil/texture-glsl130-vertex.txt"); addFragmentShader("ark2d/shaders/stencil/texture-glsl130-fragment.txt"); } } bindAttributeLocation(0, "ark_TextureId"); bindAttributeLocation(1, "ark_VertexPositionIn"); bindAttributeLocation(2, "ark_VertexNormalIn"); bindAttributeLocation(3, "ark_VertexTexCoordIn"); bindAttributeLocation(4, "ark_VertexColorIn"); bindFragmentDataLocation(0, "ark_FragColor"); link(); linkDX(); ShaderStore::getInstance()->addShader(m_programId, this); RendererState::start(RendererState::SHADER, getId()); ark_ModelMatrix = getUniformVariable("ark_ModelMatrix"); ark_ViewMatrix = getUniformVariable("ark_ViewMatrix"); ark_ProjectionMatrix = getUniformVariable("ark_ProjectionMatrix"); ark_NormalMatrix = getUniformVariable("ark_NormalMatrix"); ark_TextureId = getUniformVariable("ark_TextureId"); ark_VertexPositionIn = 1; ark_VertexNormalIn = 2; ark_VertexTexCoordIn = 3; ark_VertexColorIn = 4; RendererState::start(RendererState::NONE); }
void PointLightingGeometryShader::load() { setName("point-lighting-geometry"); bool err1 = false; bool err2 = false; if (ARK2D::getPlatform() == ARK2D::PLATFORM_ANDROID) { addVertexShader("ark2d/shaders/point-lighting/geometry/glsles100-vertex.txt"); addFragmentShader("ark2d/shaders/point-lighting/geometry/glsles100-fragment.txt"); } else { //addVertexShader("ark2d/shaders/point-lighting/geometry/glsl330-vertex.txt"); //bool err1 = hasError(); //addFragmentShader("ark2d/shaders/point-lighting/geometry/glsl330-fragment.txt"); //bool err2 = hasError(); //if (err1 || err2) { err1 = false; err2 = false; addVertexShader("ark2d/shaders/point-lighting/geometry/glsl150-vertex.txt"); err1 = hasError(); addFragmentShader("ark2d/shaders/point-lighting/geometry/glsl150-fragment.txt"); err2 = hasError(); if (err1 || err2) { addVertexShader("ark2d/shaders/point-lighting/geometry/glsl130-vertex.txt"); addFragmentShader("ark2d/shaders/point-lighting/geometry/glsl130-fragment.txt"); } //} } ShaderStore::getInstance()->addShader(m_programId, this); bindAttributeLocation(0, "ark_VertexPositionIn"); bindAttributeLocation(1, "ark_VertexNormalIn"); bindAttributeLocation(2, "ark_VertexColorIn"); bindFragmentDataLocation(0, "ark_FragColor"); link(); linkDX(); RendererState::start(RendererState::SHADER, getId()); ark_ModelMatrix = getUniformVariable("ark_ModelMatrix"); ark_ViewMatrix = getUniformVariable("ark_ViewMatrix"); ark_ProjectionMatrix = getUniformVariable("ark_ProjectionMatrix"); ark_NormalMatrix = getUniformVariable("ark_NormalMatrix"); _LightColor = getUniformVariable("u_sunlight.vColor"); _LightDirection = getUniformVariable("u_sunlight.vDirection"); _LightAmbientIntensity = getUniformVariable("u_sunlight.fAmbientIntensity"); _LightStrength = getUniformVariable("u_sunlight.fStrength"); _PointLightColor = getUniformVariable("u_pointlight.vColor"); _PointLightPosition = getUniformVariable("u_pointlight.vPosition"); _PointLightAmbient = getUniformVariable("u_pointlight.fAmbient"); _PointLightConstantAtt = getUniformVariable("u_pointlight.fConstantAtt"); _PointLightLinearAtt = getUniformVariable("u_pointlight.fLinearAtt"); _PointLightExpAtt = getUniformVariable("u_pointlight.fExpAtt"); ark_VertexPositionIn = 0; ark_VertexNormalIn = 1; ark_VertexColorIn = 2; RendererState::start(RendererState::NONE); }