@@ -105,6 +105,7 @@ class SoftwareGLContext : public GLContext {
105
105
virtual void gl_stencil_func_separate (GLenum face, GLenum func, GLint ref, GLuint mask) override ;
106
106
virtual void gl_stencil_op_separate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass) override ;
107
107
virtual void gl_normal (GLfloat nx, GLfloat ny, GLfloat nz) override ;
108
+ virtual void gl_raster_pos (GLfloat x, GLfloat y, GLfloat z, GLfloat w) override ;
108
109
virtual void present () override ;
109
110
110
111
private:
@@ -269,7 +270,8 @@ class SoftwareGLContext : public GLContext {
269
270
decltype (&SoftwareGLContext::gl_scissor),
270
271
decltype (&SoftwareGLContext::gl_stencil_func_separate),
271
272
decltype (&SoftwareGLContext::gl_stencil_op_separate),
272
- decltype (&SoftwareGLContext::gl_normal)>;
273
+ decltype (&SoftwareGLContext::gl_normal),
274
+ decltype (&SoftwareGLContext::gl_raster_pos)>;
273
275
274
276
using ExtraSavedArguments = Variant<
275
277
FloatMatrix4x4>;
@@ -305,6 +307,17 @@ class SoftwareGLContext : public GLContext {
305
307
u8 m_pack_alignment { 4 };
306
308
GLsizei m_unpack_row_length { 0 };
307
309
u8 m_unpack_alignment { 4 };
310
+
311
+ struct RasterPosition {
312
+ FloatVector3 window_coordinates { 0 .0f , 0 .0f , 0 .0f };
313
+ float clip_coordinate_value { 1 .0f };
314
+ float eye_coordinate_distance { 0 .0f };
315
+ bool valid { true };
316
+ FloatVector4 color_rgba { 1 .0f , 1 .0f , 1 .0f , 1 .0f };
317
+ float color_index { 1 .0f };
318
+ FloatVector4 texture_coordinates { 0 .0f , 0 .0f , 0 .0f , 1 .0f };
319
+ };
320
+ RasterPosition m_current_raster_position;
308
321
};
309
322
310
323
}
0 commit comments