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

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26322>
This commit is contained in:
Alexander von Gluck IV 2023-11-21 17:49:10 +00:00 committed by Marge Bot
parent af90199fd8
commit c9e33f3545
3 changed files with 28 additions and 29 deletions

View file

@ -53,20 +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__)
@ -120,7 +106,7 @@ haiku_create_window_surface(_EGLDisplay *disp, _EGLConfig *conf,
}
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);
@ -159,7 +145,7 @@ haiku_create_pbuffer_surface(_EGLDisplay *disp, _EGLConfig *conf,
}
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) {
@ -239,7 +225,7 @@ haiku_swap_buffers(_EGLDisplay *disp, _EGLSurface *surf)
p_atomic_inc(&buffer->base.stamp);
}
// XXX: right front / back if BGL_STEREO?
// XXX: right front / back if HGL_STEREO?
update_size(buffer);
@ -432,7 +418,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));

View file

@ -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__,

View file

@ -1,5 +1,5 @@
/*
* Copyright 2009-2014, Haiku, Inc. All Rights Reserved.
* Copyright 2009-2023, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
@ -16,6 +16,21 @@
#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" {