Lines Matching defs:spec
793 OutputCountShader (const glu::ContextType& contextType, const OutputCountPatternSpec& spec);
800 std::string genGeometrySource (const glu::ContextType& contextType, const OutputCountPatternSpec& spec) const;
801 size_t getPatternEmitCount (const OutputCountPatternSpec& spec) const;
808 OutputCountShader::OutputCountShader (const glu::ContextType& contextType, const OutputCountPatternSpec& spec)
817 << sglr::pdec::GeometryShaderDeclaration(rr::GEOMETRYSHADERINPUTTYPE_POINTS, rr::GEOMETRYSHADEROUTPUTTYPE_TRIANGLE_STRIP, getPatternEmitCount(spec))
818 << sglr::pdec::GeometrySource(genGeometrySource(contextType, spec)))
819 , m_patternLength ((int)spec.pattern.size())
820 , m_patternMaxEmitCount ((int)getPatternEmitCount(spec))
821 , m_spec (spec)
865 std::string OutputCountShader::genGeometrySource (const glu::ContextType& contextType, const OutputCountPatternSpec& spec) const
870 for (int ndx = 0; ndx < (int)spec.pattern.size(); ++ndx)
871 DE_ASSERT(spec.pattern[ndx] % 2 == 0);
876 str << "layout(triangle_strip, max_vertices = " << getPatternEmitCount(spec) << ") out;";
884 " const highp float rowHeight = 2.0 / float(" << spec.pattern.size() << ");\n"
885 " const highp float colWidth = 2.0 / float(" << getPatternEmitCount(spec) << ");\n"
889 for (int ndx = 0; ndx < (int)spec.pattern.size() - 1; ++ndx)
890 str << "(gl_PrimitiveIDIn == " << ndx << ") ? (" << spec.pattern[ndx] << ") : (";
891 str << spec.pattern[(int)spec.pattern.size() - 1]
892 << ((spec.pattern.size() == 1) ? ("") : (")"))
910 size_t OutputCountShader::getPatternEmitCount (const OutputCountPatternSpec& spec) const
912 return *std::max_element(spec.pattern.begin(), spec.pattern.end());
2489 OutputCountCase::OutputCountCase (Context& context, const char* name, const char* desc, const OutputCountPatternSpec& spec)
2491 , m_primitiveCount ((int)spec.pattern.size())
2493 , m_spec (spec)