mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:57:45 +00:00
LibAccelGfx: Compile all needed shaders during Painter construction
Instead of recompiling shaders on each paint command call we can compile them once.
This commit is contained in:
parent
1e85bf221d
commit
b7f8d7e357
5 changed files with 139 additions and 58 deletions
35
Userland/Libraries/LibAccelGfx/Program.h
Normal file
35
Userland/Libraries/LibAccelGfx/Program.h
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Copyright (c) 2023, Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AK/Noncopyable.h>
|
||||
#include <GL/gl.h>
|
||||
|
||||
namespace AccelGfx {
|
||||
|
||||
class Program {
|
||||
AK_MAKE_NONCOPYABLE(Program);
|
||||
|
||||
public:
|
||||
static Program create(char const* vertex_shader_source, char const* fragment_shader_source);
|
||||
|
||||
void use();
|
||||
GLuint get_attribute_location(char const* name);
|
||||
GLuint get_uniform_location(char const* name);
|
||||
|
||||
~Program();
|
||||
|
||||
private:
|
||||
Program(GLuint id)
|
||||
: m_id(id)
|
||||
{
|
||||
}
|
||||
|
||||
GLuint m_id { 0 };
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue