mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-26 03:02:27 -05:00
00d46e5d77
Each texture unit now has its own texture transformation matrix stack. Introduce a new texture unit configuration that is synced when changed. Because we're no longer passing a silly `Vector` when drawing each primitive, this results in a slightly improved frames per second :^)
30 lines
595 B
C++
30 lines
595 B
C++
/*
|
|
* Copyright (c) 2022, Jelle Raaijmakers <jelle@gmta.nl>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <LibGPU/Enums.h>
|
|
#include <LibGfx/Matrix4x4.h>
|
|
#include <LibGfx/Vector4.h>
|
|
|
|
namespace GPU {
|
|
|
|
typedef u8 TextureUnitIndex;
|
|
|
|
struct TexCoordGeneration {
|
|
bool enabled;
|
|
TexCoordGenerationMode mode;
|
|
FloatVector4 coefficients;
|
|
};
|
|
|
|
struct TextureUnitConfiguration {
|
|
bool enabled { false };
|
|
FloatMatrix4x4 transformation_matrix { FloatMatrix4x4::identity() };
|
|
u8 tex_coord_generation_enabled;
|
|
TexCoordGeneration tex_coord_generation[4];
|
|
};
|
|
|
|
}
|