mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-09 05:10:05 +02:00
194 lines
6.1 KiB
Plaintext
194 lines
6.1 KiB
Plaintext
From a0c384a6165b7e5ad021cb974a6c9c9fe391b492 Mon Sep 17 00:00:00 2001
|
|
From: Alexander von Gluck IV <kallisti5@unixzen.com>
|
|
Date: Sat, 15 Apr 2023 08:08:43 -0500
|
|
Subject: [PATCH] hgl: Redefine visual options in hgl_context.h
|
|
|
|
* For now, move the visual mask flags into hgl_context.h
|
|
* This removes an un-needed dependency on GLView.h from glvnd
|
|
* Eventually, these need converted into normal EGL parameters
|
|
---
|
|
src/egl/drivers/haiku/egl_haiku.cpp | 21 +++------------------
|
|
src/gallium/frontends/hgl/hgl.c | 18 ++++++++----------
|
|
src/gallium/frontends/hgl/hgl_context.h | 16 ++++++++++++++++
|
|
3 files changed, 27 insertions(+), 28 deletions(-)
|
|
|
|
diff --git a/src/egl/drivers/haiku/egl_haiku.cpp b/src/egl/drivers/haiku/egl_haiku.cpp
|
|
index 3069c7edb42..94866e12315 100644
|
|
--- a/src/egl/drivers/haiku/egl_haiku.cpp
|
|
+++ b/src/egl/drivers/haiku/egl_haiku.cpp
|
|
@@ -53,21 +53,6 @@ extern "C" {
|
|
#include "target-helpers/inline_sw_helper.h"
|
|
}
|
|
|
|
-#define BGL_RGB 0
|
|
-#define BGL_INDEX 1
|
|
-#define BGL_SINGLE 0
|
|
-#define BGL_DOUBLE 2
|
|
-#define BGL_DIRECT 0
|
|
-#define BGL_INDIRECT 4
|
|
-#define BGL_ACCUM 8
|
|
-#define BGL_ALPHA 16
|
|
-#define BGL_DEPTH 32
|
|
-#define BGL_OVERLAY 64
|
|
-#define BGL_UNDERLAY 128
|
|
-#define BGL_STENCIL 512
|
|
-#define BGL_SHARE_CONTEXT 1024
|
|
-
|
|
-
|
|
#ifdef DEBUG
|
|
# define TRACE(x...) printf("egl_haiku: " x)
|
|
# define CALLED() TRACE("CALLED: %s\n", __PRETTY_FUNCTION__)
|
|
@@ -121,7 +106,7 @@ haiku_create_window_surface(_EGLDisplay *disp, _EGLConfig *conf, void *native_wi
|
|
}
|
|
|
|
struct st_visual visual;
|
|
- hgl_get_st_visual(&visual, BGL_DOUBLE|BGL_DEPTH);
|
|
+ hgl_get_st_visual(&visual, HGL_DOUBLE|HGL_DEPTH);
|
|
|
|
wgl_surf->fb = hgl_create_st_framebuffer(hgl_dpy->disp, &visual, native_window);
|
|
if (!wgl_surf->fb) {
|
|
@@ -158,7 +143,7 @@ haiku_create_pbuffer_surface(_EGLDisplay *disp, _EGLConfig *conf, const EGLint *
|
|
|
|
|
|
struct st_visual visual;
|
|
- hgl_get_st_visual(&visual, BGL_DOUBLE|BGL_DEPTH);
|
|
+ hgl_get_st_visual(&visual, HGL_DOUBLE|HGL_DEPTH);
|
|
|
|
wgl_surf->fb = hgl_create_st_framebuffer(hgl_dpy->disp, &visual, NULL);
|
|
if (!wgl_surf->fb) {
|
|
@@ -429,7 +414,7 @@ haiku_create_context(_EGLDisplay *disp, _EGLConfig *conf,
|
|
struct haiku_egl_display *hgl_dpy = haiku_egl_display(disp);
|
|
|
|
struct st_visual visual;
|
|
- hgl_get_st_visual(&visual, BGL_DOUBLE|BGL_DEPTH);
|
|
+ hgl_get_st_visual(&visual, HGL_DOUBLE|HGL_DEPTH);
|
|
|
|
struct haiku_egl_context* context = (struct haiku_egl_context*) calloc(1, sizeof (*context));
|
|
if (!context) {
|
|
diff --git a/src/gallium/frontends/hgl/hgl.c b/src/gallium/frontends/hgl/hgl.c
|
|
index 7fd5745d90f..8392f2ad2f7 100644
|
|
--- a/src/gallium/frontends/hgl/hgl.c
|
|
+++ b/src/gallium/frontends/hgl/hgl.c
|
|
@@ -18,8 +18,6 @@
|
|
#include "util/u_inlines.h"
|
|
#include "state_tracker/st_context.h"
|
|
|
|
-#include "GLView.h"
|
|
-
|
|
|
|
#ifdef DEBUG
|
|
# define TRACE(x...) printf("hgl:frontend: " x)
|
|
@@ -321,39 +319,39 @@ hgl_get_st_visual(struct st_visual* visual, ulong options)
|
|
assert(visual);
|
|
|
|
// Determine color format
|
|
- if ((options & BGL_INDEX) != 0) {
|
|
+ if ((options & HGL_INDEX) != 0) {
|
|
// Index color
|
|
visual->color_format = PIPE_FORMAT_B5G6R5_UNORM;
|
|
// TODO: Indexed color depth buffer?
|
|
visual->depth_stencil_format = PIPE_FORMAT_NONE;
|
|
} else {
|
|
// RGB color
|
|
- visual->color_format = (options & BGL_ALPHA)
|
|
+ visual->color_format = (options & HGL_ALPHA)
|
|
? PIPE_FORMAT_BGRA8888_UNORM : PIPE_FORMAT_BGRX8888_UNORM;
|
|
// TODO: Determine additional stencil formats
|
|
- visual->depth_stencil_format = (options & BGL_DEPTH)
|
|
+ visual->depth_stencil_format = (options & HGL_DEPTH)
|
|
? PIPE_FORMAT_Z24_UNORM_S8_UINT : PIPE_FORMAT_NONE;
|
|
}
|
|
|
|
- visual->accum_format = (options & BGL_ACCUM)
|
|
+ visual->accum_format = (options & HGL_ACCUM)
|
|
? PIPE_FORMAT_R16G16B16A16_SNORM : PIPE_FORMAT_NONE;
|
|
|
|
visual->buffer_mask |= ST_ATTACHMENT_FRONT_LEFT_MASK;
|
|
|
|
- if ((options & BGL_DOUBLE) != 0) {
|
|
+ if ((options & HGL_DOUBLE) != 0) {
|
|
TRACE("double buffer enabled\n");
|
|
visual->buffer_mask |= ST_ATTACHMENT_BACK_LEFT_MASK;
|
|
}
|
|
|
|
#if 0
|
|
- if ((options & BGL_STEREO) != 0) {
|
|
+ if ((options & HGL_STEREO) != 0) {
|
|
visual->buffer_mask |= ST_ATTACHMENT_FRONT_RIGHT_MASK;
|
|
- if ((options & BGL_DOUBLE) != 0)
|
|
+ if ((options & HGL_DOUBLE) != 0)
|
|
visual->buffer_mask |= ST_ATTACHMENT_BACK_RIGHT_MASK;
|
|
}
|
|
#endif
|
|
|
|
- if ((options & BGL_DEPTH) || (options & BGL_STENCIL))
|
|
+ if ((options & HGL_DEPTH) || (options & HGL_STENCIL))
|
|
visual->buffer_mask |= ST_ATTACHMENT_DEPTH_STENCIL_MASK;
|
|
|
|
TRACE("%s: Visual color format: %s\n", __func__,
|
|
diff --git a/src/gallium/frontends/hgl/hgl_context.h b/src/gallium/frontends/hgl/hgl_context.h
|
|
index 03e567af2de..6c36bf93474 100644
|
|
--- a/src/gallium/frontends/hgl/hgl_context.h
|
|
+++ b/src/gallium/frontends/hgl/hgl_context.h
|
|
@@ -17,6 +17,22 @@
|
|
#include "frontend/api.h"
|
|
|
|
|
|
+// visual options
|
|
+#define HGL_RGB 0
|
|
+#define HGL_INDEX 1
|
|
+#define HGL_SINGLE 0
|
|
+#define HGL_DOUBLE 2
|
|
+#define HGL_DIRECT 0
|
|
+#define HGL_INDIRECT 4
|
|
+#define HGL_ACCUM 8
|
|
+#define HGL_ALPHA 16
|
|
+#define HGL_DEPTH 32
|
|
+#define HGL_OVERLAY 64
|
|
+#define HGL_UNDERLAY 128
|
|
+#define HGL_STENCIL 512
|
|
+#define HGL_SHARE_CONTEXT 1024
|
|
+
|
|
+
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
--
|
|
2.37.3
|
|
|
|
From 9f063a17d5149b963b7e6a25659373dac9f9c905 Mon Sep 17 00:00:00 2001
|
|
From: Alexander von Gluck IV <kallisti5@unixzen.com>
|
|
Date: Sat, 15 Apr 2023 10:06:37 -0500
|
|
Subject: [PATCH] egl/haiku: Drop some dead cleanup code
|
|
|
|
---
|
|
src/egl/drivers/haiku/egl_haiku.cpp | 5 -----
|
|
1 file changed, 5 deletions(-)
|
|
|
|
diff --git a/src/egl/drivers/haiku/egl_haiku.cpp b/src/egl/drivers/haiku/egl_haiku.cpp
|
|
index 94866e12315..c01be7b0f5e 100644
|
|
--- a/src/egl/drivers/haiku/egl_haiku.cpp
|
|
+++ b/src/egl/drivers/haiku/egl_haiku.cpp
|
|
@@ -314,7 +314,6 @@ static EGLBoolean
|
|
haiku_initialize_impl(_EGLDisplay *disp, void *platformDisplay)
|
|
{
|
|
struct haiku_egl_display *hgl_dpy;
|
|
- const char* err;
|
|
|
|
hgl_dpy = (struct haiku_egl_display*)calloc(1, sizeof(struct haiku_egl_display));
|
|
if (!hgl_dpy)
|
|
@@ -355,10 +354,6 @@ haiku_initialize_impl(_EGLDisplay *disp, void *platformDisplay)
|
|
haiku_add_configs_for_visuals(disp);
|
|
|
|
return EGL_TRUE;
|
|
-
|
|
-cleanup:
|
|
- haiku_display_destroy(disp);
|
|
- return _eglError(EGL_NOT_INITIALIZED, err);
|
|
}
|
|
|
|
|
|
--
|
|
2.37.3
|
|
|