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:
parent
af90199fd8
commit
c9e33f3545
3 changed files with 28 additions and 29 deletions
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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__,
|
||||
|
|
|
|||
|
|
@ -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" {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue