mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-08-02 14:57:31 +03:00
renderer/OpenGL: use compressed texture formats for images
BPTC is required to be available OpenGL >= 4.2 and our minimum is 4.3 so this is safe in terms of support. I tested briefly in a VM and didn't encounter any problems so this should just be a complete win. (Note: texture data is already automatically compressed on Metal)
This commit is contained in:

committed by
Mitchell Hashimoto

parent
da46a47726
commit
5cb175ff63
@ -74,6 +74,9 @@ pub const InternalFormat = enum(c_int) {
|
||||
srgb = c.GL_SRGB8,
|
||||
srgba = c.GL_SRGB8_ALPHA8,
|
||||
|
||||
rgba_compressed = c.GL_COMPRESSED_RGBA_BPTC_UNORM,
|
||||
srgba_compressed = c.GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
|
||||
|
||||
// There are so many more that I haven't filled in.
|
||||
_,
|
||||
};
|
||||
@ -126,7 +129,6 @@ pub const Binding = struct {
|
||||
internal_format: InternalFormat,
|
||||
width: c.GLsizei,
|
||||
height: c.GLsizei,
|
||||
border: c.GLint,
|
||||
format: Format,
|
||||
typ: DataType,
|
||||
data: ?*const anyopaque,
|
||||
@ -137,7 +139,7 @@ pub const Binding = struct {
|
||||
@intFromEnum(internal_format),
|
||||
width,
|
||||
height,
|
||||
border,
|
||||
0,
|
||||
@intFromEnum(format),
|
||||
@intFromEnum(typ),
|
||||
data,
|
||||
|
@ -395,7 +395,7 @@ pub inline fn textureOptions(self: OpenGL) Texture.Options {
|
||||
_ = self;
|
||||
return .{
|
||||
.format = .rgba,
|
||||
.internal_format = .srgba,
|
||||
.internal_format = .srgba_compressed,
|
||||
.target = .@"2D",
|
||||
};
|
||||
}
|
||||
|
@ -57,7 +57,6 @@ pub fn init(
|
||||
opts.internal_format,
|
||||
@intCast(width),
|
||||
@intCast(height),
|
||||
0,
|
||||
opts.format,
|
||||
.UnsignedByte,
|
||||
if (data) |d| @ptrCast(d.ptr) else null,
|
||||
|
Reference in New Issue
Block a user