Sampler for lattice form gourad triangle shading

This commit is contained in:
Jakub Melka
2021-03-13 16:52:34 +01:00
parent 995a3cdd7a
commit c5165186ab
2 changed files with 86 additions and 18 deletions

View File

@@ -509,10 +509,26 @@ public:
virtual ShadingType getShadingType() const override;
virtual PDFMesh createMesh(const PDFMeshQualitySettings& settings, const PDFCMS* cms, RenderingIntent intent, PDFRenderErrorReporter* reporter) const override;
virtual PDFShadingSampler* createSampler(QMatrix userSpaceToDeviceSpaceMatrix) const override;
private:
friend class PDFPattern;
struct VertexData
{
uint32_t index = 0;
QPointF position;
PDFColor color;
};
using InitializeFunction = std::function<void(std::vector<QPointF>&&, size_t)>;
using AddTriangleFunction = std::function<void(const VertexData*, const VertexData*, const VertexData*)>;
bool processTriangles(InitializeFunction initializeMeshFunction,
AddTriangleFunction addTriangle,
const QMatrix& userSpaceToDeviceSpaceMatrix,
bool convertColors) const;
PDFInteger m_verticesPerRow = 0;
};