mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 16:52:43 +00:00 
			
		
		
		
	 44a3d5c101
			
		
	
	
		44a3d5c101
		
	
	
	
	
		
			
			Our API still specifies it as a double, but internally we communicate a float to the rasterizer. Additionally, clamp the value to 0..1 as described in the spec.
		
			
				
	
	
		
			191 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			191 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2021, Jesse Buhagiar <jooster669@gmail.com>
 | |
|  * Copyright (c) 2021, Stephan Unverwerth <s.unverwerth@serenityos.org>
 | |
|  *
 | |
|  * SPDX-License-Identifier: BSD-2-Clause
 | |
|  */
 | |
| 
 | |
| #include "GL/gl.h"
 | |
| #include "GLContext.h"
 | |
| 
 | |
| extern GL::GLContext* g_gl_context;
 | |
| 
 | |
| void glEnable(GLenum cap)
 | |
| {
 | |
|     g_gl_context->gl_enable(cap);
 | |
| }
 | |
| 
 | |
| void glDisable(GLenum cap)
 | |
| {
 | |
|     g_gl_context->gl_disable(cap);
 | |
| }
 | |
| 
 | |
| GLboolean glIsEnabled(GLenum cap)
 | |
| {
 | |
|     return g_gl_context->gl_is_enabled(cap);
 | |
| }
 | |
| 
 | |
| void glFrontFace(GLenum mode)
 | |
| {
 | |
|     g_gl_context->gl_front_face(mode);
 | |
| }
 | |
| 
 | |
| void glCullFace(GLenum mode)
 | |
| {
 | |
|     g_gl_context->gl_cull_face(mode);
 | |
| }
 | |
| 
 | |
| void glClear(GLbitfield mask)
 | |
| {
 | |
|     g_gl_context->gl_clear(mask);
 | |
| }
 | |
| 
 | |
| void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
 | |
| {
 | |
|     g_gl_context->gl_clear_color(red, green, blue, alpha);
 | |
| }
 | |
| 
 | |
| void glClearDepth(GLdouble depth)
 | |
| {
 | |
|     g_gl_context->gl_clear_depth(depth);
 | |
| }
 | |
| 
 | |
| void glClearDepthf(GLfloat depth)
 | |
| {
 | |
|     g_gl_context->gl_clear_depth(static_cast<double>(depth));
 | |
| }
 | |
| 
 | |
| void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
 | |
| {
 | |
|     g_gl_context->gl_color_mask(red, green, blue, alpha);
 | |
| }
 | |
| 
 | |
| GLubyte* glGetString(GLenum name)
 | |
| {
 | |
|     return g_gl_context->gl_get_string(name);
 | |
| }
 | |
| 
 | |
| void glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
 | |
| {
 | |
|     g_gl_context->gl_viewport(x, y, width, height);
 | |
| }
 | |
| 
 | |
| GLenum glGetError()
 | |
| {
 | |
|     return g_gl_context->gl_get_error();
 | |
| }
 | |
| 
 | |
| void glFlush()
 | |
| {
 | |
|     g_gl_context->gl_flush();
 | |
| }
 | |
| 
 | |
| void glFinish()
 | |
| {
 | |
|     g_gl_context->gl_finish();
 | |
| }
 | |
| 
 | |
| void glHint(GLenum target, GLenum mode)
 | |
| {
 | |
|     g_gl_context->gl_hint(target, mode);
 | |
| }
 | |
| 
 | |
| void glReadBuffer(GLenum mode)
 | |
| {
 | |
|     g_gl_context->gl_read_buffer(mode);
 | |
| }
 | |
| 
 | |
| void glDrawBuffer(GLenum buffer)
 | |
| {
 | |
|     g_gl_context->gl_draw_buffer(buffer);
 | |
| }
 | |
| 
 | |
| void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels)
 | |
| {
 | |
|     g_gl_context->gl_read_pixels(x, y, width, height, format, type, pixels);
 | |
| }
 | |
| 
 | |
| void glGetBooleanv(GLenum pname, GLboolean* data)
 | |
| {
 | |
|     g_gl_context->gl_get_booleanv(pname, data);
 | |
| }
 | |
| 
 | |
| void glGetDoublev(GLenum pname, GLdouble* params)
 | |
| {
 | |
|     g_gl_context->gl_get_doublev(pname, params);
 | |
| }
 | |
| 
 | |
| void glGetFloatv(GLenum pname, GLfloat* params)
 | |
| {
 | |
|     g_gl_context->gl_get_floatv(pname, params);
 | |
| }
 | |
| 
 | |
| void glGetIntegerv(GLenum pname, GLint* data)
 | |
| {
 | |
|     g_gl_context->gl_get_integerv(pname, data);
 | |
| }
 | |
| 
 | |
| void glDepthMask(GLboolean flag)
 | |
| {
 | |
|     g_gl_context->gl_depth_mask(flag);
 | |
| }
 | |
| 
 | |
| void glEnableClientState(GLenum cap)
 | |
| {
 | |
|     g_gl_context->gl_enable_client_state(cap);
 | |
| }
 | |
| 
 | |
| void glDisableClientState(GLenum cap)
 | |
| {
 | |
|     g_gl_context->gl_disable_client_state(cap);
 | |
| }
 | |
| 
 | |
| void glClientActiveTextureARB(GLenum target)
 | |
| {
 | |
|     glClientActiveTexture(target);
 | |
| }
 | |
| 
 | |
| void glClientActiveTexture(GLenum target)
 | |
| {
 | |
|     g_gl_context->gl_client_active_texture(target);
 | |
| }
 | |
| 
 | |
| void glDepthRange(GLdouble min, GLdouble max)
 | |
| {
 | |
|     g_gl_context->gl_depth_range(min, max);
 | |
| }
 | |
| 
 | |
| void glDepthFunc(GLenum func)
 | |
| {
 | |
|     g_gl_context->gl_depth_func(func);
 | |
| }
 | |
| 
 | |
| void glPolygonMode(GLenum face, GLenum mode)
 | |
| {
 | |
|     g_gl_context->gl_polygon_mode(face, mode);
 | |
| }
 | |
| 
 | |
| void glPolygonOffset(GLfloat factor, GLfloat units)
 | |
| {
 | |
|     g_gl_context->gl_polygon_offset(factor, units);
 | |
| }
 | |
| 
 | |
| void glPixelStorei(GLenum pname, GLint param)
 | |
| {
 | |
|     g_gl_context->gl_pixel_storei(pname, param);
 | |
| }
 | |
| 
 | |
| void glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
 | |
| {
 | |
|     g_gl_context->gl_scissor(x, y, width, height);
 | |
| }
 | |
| 
 | |
| void glPushAttrib(GLbitfield mask)
 | |
| {
 | |
|     g_gl_context->gl_push_attrib(mask);
 | |
| }
 | |
| 
 | |
| void glPopAttrib()
 | |
| {
 | |
|     g_gl_context->gl_pop_attrib();
 | |
| }
 |