srp
software rendering pipeline
Loading...
Searching...
No Matches
Todo List
Member drawTriangle (const SRPFramebuffer *fb, const SRPvsOutput vertices[3], const SRPShaderProgram *restrict sp, size_t primitiveID)

Why compute these two edge vectors twice?

Are rasterization rules working? Rough equality here?

Avoid VLA (custom allocator?)

fix rasterizer to accept both cw and ccw vertices and add correct frontFacing here!

fragCoord should be window-space: see https://www.khronos.org/opengl/wiki/Fragment_Shader#Inputs

SRPfsOutput.fragDepth may be set to 0 manually by the user

Member mat4dConstructPerspectiveProjection (double x_min_near, double x_max_near, double y_min_near, double y_max_near, double z_near, double z_far)
Avoid matmul here?
Member srpContextSetP (SRPContextParameter contextParameter, const void *data)
Is this cast OK?
Member srpFramebufferDrawPixel (const SRPFramebuffer *this, size_t x, size_t y, double depth, uint32_t color)
This is not the job of the framebuffer to check this, this should be deleted after the primitive clipping implementation
Member srpTextureGetFilteredColor (const SRPTexture *this, double u, double v, double out[4])

Now using only filteringModeMagnifying; how to know if texture is magnified or minified?

Too many conditionals?

wrappingMode is untested!

Member triangleIsEdgeFlatTopOrLeft (const vec3d *restrict edgeVector)
Does it matter if I pass edge 0->1 or 1->0 (numbers = vertex indices)? This should be documented.