1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-22 18:35:18 +00:00
serenity/Userland/Libraries/LibGL/GLLights.cpp
Jesse Buhagiar 92373ab0b6 LibGL: Flesh out glMaterialf{v}
These two functions have been turned from stubs into actually doing
something. They now set the correspondingmaterial data member based on
the value passed into the `pname`argument.

Co-authored-by: Stephan Unverwerth <s.unverwerth@serenityos.org>
2022-01-12 13:36:56 +01:00

65 lines
1.6 KiB
C++

/*
* Copyright (c) 2021, Stephan Unverwerth <s.unverwerth@serenityos.org>
* Copyright (c) 2021, Jelle Raaijmakers <jelle@gmta.nl>
* Copyright (c) 2022, Jesse Buhagiar <jooster669@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include "GL/gl.h"
#include "GLContext.h"
#include <AK/Debug.h>
extern GL::GLContext* g_gl_context;
void glColorMaterial(GLenum face, GLenum mode)
{
// FIXME: implement
dbgln_if(GL_DEBUG, "glColorMaterial({:#x}, {:#x}): unimplemented", face, mode);
}
void glLightf(GLenum light, GLenum pname, GLfloat param)
{
g_gl_context->gl_lightf(light, pname, param);
}
void glLightfv(GLenum light, GLenum pname, GLfloat const* param)
{
g_gl_context->gl_lightfv(light, pname, param);
}
void glLightModelf(GLenum pname, GLfloat param)
{
g_gl_context->gl_light_model(pname, param, 0.0f, 0.0f, 0.0f);
}
void glLightModelfv(GLenum pname, GLfloat const* params)
{
switch (pname) {
case GL_LIGHT_MODEL_AMBIENT:
g_gl_context->gl_light_model(pname, params[0], 0.0f, 0.0f, 0.0f);
break;
default:
g_gl_context->gl_light_model(pname, params[0], params[1], params[2], params[3]);
}
}
void glLightModeli(GLenum pname, GLint param)
{
g_gl_context->gl_light_model(pname, param, 0.0f, 0.0f, 0.0f);
}
void glMaterialf(GLenum face, GLenum pname, GLfloat param)
{
g_gl_context->gl_materialf(face, pname, param);
}
void glMaterialfv(GLenum face, GLenum pname, GLfloat const* params)
{
g_gl_context->gl_materialfv(face, pname, params);
}
void glShadeModel(GLenum mode)
{
g_gl_context->gl_shade_model(mode);
}