Lines Matching refs:renderCtx
53 static bool isExtensionSupported (const glu::RenderContext& renderCtx, const std::string& extension)
55 const glw::Functions& gl = renderCtx.getFunctions();
71 static void checkExtension (const glu::RenderContext& renderCtx, const std::string& extension)
73 if (!isExtensionSupported(renderCtx, extension))
77 static void checkLimit (const glu::RenderContext& renderCtx, deUint32 pname, int required)
79 const glw::Functions& gl = renderCtx.getFunctions();
457 ShaderExecutor::ShaderExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
458 : m_renderCtx (renderCtx)
485 FragmentOutExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec);
514 inline bool hasFloatRenderTargets (const glu::RenderContext& renderCtx)
516 glu::ContextType type = renderCtx.getType();
520 FragmentOutExecutor::FragmentOutExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
521 : ShaderExecutor (renderCtx, shaderSpec)
704 VertexShaderExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec);
715 VertexShaderExecutor::VertexShaderExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
716 : FragmentOutExecutor (renderCtx, shaderSpec)
717 , m_program (renderCtx,
719 << glu::FragmentSource(generatePassthroughFragmentShader(shaderSpec, !hasFloatRenderTargets(renderCtx), m_outputLayout.locationMap, "vtx_out_", "o_")))
732 static GeometryShaderExecutor* create (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec);
744 GeometryShaderExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec);
747 GeometryShaderExecutor* GeometryShaderExecutor::create (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
750 && !contextSupports(renderCtx.getType(), glu::ApiType::core(4, 5)))
751 checkExtension(renderCtx, "GL_EXT_geometry_shader");
753 return new GeometryShaderExecutor(renderCtx, shaderSpec);
756 GeometryShaderExecutor::GeometryShaderExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
757 : FragmentOutExecutor (renderCtx, shaderSpec)
758 , m_program (renderCtx,
761 << glu::FragmentSource(generatePassthroughFragmentShader(shaderSpec, !hasFloatRenderTargets(renderCtx), m_outputLayout.locationMap, "geom_out_", "o_")))
774 FragmentShaderExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec);
785 FragmentShaderExecutor::FragmentShaderExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
786 : FragmentOutExecutor (renderCtx, shaderSpec)
787 , m_program (renderCtx,
789 << glu::FragmentSource(generateFragmentShader(shaderSpec, !hasFloatRenderTargets(renderCtx), m_outputLayout.locationMap, "vtx_out_", "o_")))
816 BufferIoExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec, const glu::ProgramSources& sources);
870 BufferIoExecutor::BufferIoExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec, const glu::ProgramSources& sources)
871 : ShaderExecutor (renderCtx, shaderSpec)
872 , m_program (renderCtx, sources)
873 , m_inputBuffer (renderCtx)
874 , m_outputBuffer (renderCtx)
1159 ComputeShaderExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec);
1196 ComputeShaderExecutor::ComputeShaderExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
1197 : BufferIoExecutor (renderCtx, shaderSpec,
1258 void checkTessSupport (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec, glu::ShaderType stage)
1263 && !contextSupports(renderCtx.getType(), glu::ApiType::core(4, 5)))
1264 checkExtension(renderCtx, "GL_EXT_tessellation_shader");
1267 checkLimit(renderCtx, GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS, numBlockRequired);
1269 checkLimit(renderCtx, GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS, numBlockRequired);
1279 static TessControlExecutor* create (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec);
1290 TessControlExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec);
1293 TessControlExecutor* TessControlExecutor::create (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
1295 checkTessSupport(renderCtx, shaderSpec, glu::SHADERTYPE_TESSELLATION_CONTROL);
1297 return new TessControlExecutor(renderCtx, shaderSpec);
1352 TessControlExecutor::TessControlExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
1353 : BufferIoExecutor (renderCtx, shaderSpec, glu::ProgramSources()
1399 static TessEvaluationExecutor* create (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec);
1410 TessEvaluationExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec);
1413 TessEvaluationExecutor* TessEvaluationExecutor::create (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
1415 checkTessSupport(renderCtx, shaderSpec, glu::SHADERTYPE_TESSELLATION_EVALUATION);
1417 return new TessEvaluationExecutor(renderCtx, shaderSpec);
1473 TessEvaluationExecutor::TessEvaluationExecutor (const glu::RenderContext& renderCtx, const ShaderSpec& shaderSpec)
1474 : BufferIoExecutor (renderCtx, shaderSpec, glu::ProgramSources()
1521 ShaderExecutor* createExecutor (const glu::RenderContext& renderCtx, glu::ShaderType shaderType, const ShaderSpec& shaderSpec)
1525 case glu::SHADERTYPE_VERTEX: return new VertexShaderExecutor (renderCtx, shaderSpec);
1526 case glu::SHADERTYPE_TESSELLATION_CONTROL: return TessControlExecutor::create (renderCtx, shaderSpec);
1527 case glu::SHADERTYPE_TESSELLATION_EVALUATION: return TessEvaluationExecutor::create (renderCtx, shaderSpec);
1528 case glu::SHADERTYPE_GEOMETRY: return GeometryShaderExecutor::create (renderCtx, shaderSpec);
1529 case glu::SHADERTYPE_FRAGMENT: return new FragmentShaderExecutor (renderCtx, shaderSpec);
1530 case glu::SHADERTYPE_COMPUTE: return new ComputeShaderExecutor (renderCtx, shaderSpec);