summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorX512 <danger_mail@list.ru>2022-11-13 18:13:21 +0900
committerMarge Bot <emma+marge@anholt.net>2023-02-18 00:44:43 +0000
commitda73bcac37fb79e1e881c38ced350a285a57859c (patch)
tree98f0b01810ad6ce5a7c0e26952abc53a9d526d10
parentadbe8b6c17a76bb5ee0b924d927473f81c593eba (diff)
downloadmesa-da73bcac37fb79e1e881c38ced350a285a57859c.tar.gz
hgl: remove
Use EGL and glvnd instead on Haiku platform. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21079>
-rw-r--r--.gitlab-ci/test-source-dep.yml1
-rw-r--r--CODEOWNERS3
-rw-r--r--include/HaikuGL/GLRenderer.h73
-rw-r--r--include/HaikuGL/GLView.h194
-rw-r--r--include/HaikuGL/OpenGLKit.h10
-rw-r--r--include/HaikuGL/README27
-rw-r--r--include/meson.build8
-rw-r--r--src/egl/meson.build1
-rw-r--r--src/gallium/frontends/hgl/meson.build2
-rw-r--r--src/gallium/meson.build1
-rw-r--r--src/gallium/targets/haiku-softpipe/.editorconfig2
-rw-r--r--src/gallium/targets/haiku-softpipe/GalliumContext.cpp416
-rw-r--r--src/gallium/targets/haiku-softpipe/GalliumContext.h59
-rw-r--r--src/gallium/targets/haiku-softpipe/SoftwareRenderer.cpp316
-rw-r--r--src/gallium/targets/haiku-softpipe/SoftwareRenderer.h54
-rw-r--r--src/gallium/targets/haiku-softpipe/SoftwareRenderer.rdef39
-rw-r--r--src/gallium/targets/haiku-softpipe/meson.build40
-rw-r--r--src/hgl/.editorconfig2
-rw-r--r--src/hgl/GLRenderer.cpp101
-rw-r--r--src/hgl/GLRendererRoster.cpp233
-rw-r--r--src/hgl/GLRendererRoster.h52
-rw-r--r--src/hgl/GLView.cpp635
-rw-r--r--src/hgl/meson.build37
-rw-r--r--src/meson.build3
24 files changed, 1 insertions, 2308 deletions
diff --git a/.gitlab-ci/test-source-dep.yml b/.gitlab-ci/test-source-dep.yml
index e1c87be0a36..379d1c66402 100644
--- a/.gitlab-ci/test-source-dep.yml
+++ b/.gitlab-ci/test-source-dep.yml
@@ -44,7 +44,6 @@
- src/drm-shim/**/*
- src/gbm/**/*
- src/gtest/**/*
- - src/hgl/**/*
- src/include/**/*
# Some src/util and src/compiler files use headers from mesa/ (e.g.
# mtypes.h). We should clean that up.
diff --git a/CODEOWNERS b/CODEOWNERS
index 8de36d8dd94..724b95aa95f 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -79,12 +79,9 @@ meson.build @dbaker @eric
/src/glx/*glvnd* @kbrenneman
# Haiku
-/include/HaikuGL/ @kallisti5
/src/egl/drivers/haiku/ @kallisti5
/src/gallium/frontends/hgl/ @kallisti5
-/src/gallium/targets/haiku-softpipe/ @kallisti5
/src/gallium/winsys/sw/hgl/ @kallisti5
-/src/hgl/ @kallisti5
# Loader - DRI/classic
/src/loader/ @xexaxo
diff --git a/include/HaikuGL/GLRenderer.h b/include/HaikuGL/GLRenderer.h
deleted file mode 100644
index 5c9c4daaeb6..00000000000
--- a/include/HaikuGL/GLRenderer.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2006, Philippe Houdoin. All rights reserved.
- * Distributed under the terms of the MIT License.
-
- * This header defines BGLRenderer, the base class making up
- * the Haiku GL renderer add-ons (essentially selfcontained C++
- * shared libraries that do the actual rendering such as
- * libswpipe.so and libswrast.so)
- */
-#ifndef GLRENDERER_H
-#define GLRENDERER_H
-
-
-#include <BeBuild.h>
-#include <GLView.h>
-
-
-class BGLDispatcher;
-class GLRendererRoster;
-
-typedef unsigned long renderer_id;
-
-class _EXPORT BGLRenderer
-{
- // Private unimplemented copy constructors
- BGLRenderer(const BGLRenderer &);
- BGLRenderer & operator=(const BGLRenderer &);
-
-public:
- BGLRenderer(BGLView *view, ulong bgl_options);
- virtual ~BGLRenderer();
-
- void Acquire();
- void Release();
-
- virtual void LockGL();
- virtual void UnlockGL();
-
- virtual void SwapBuffers(bool VSync = false);
- virtual void Draw(BRect updateRect);
- virtual status_t CopyPixelsOut(BPoint source, BBitmap *dest);
- virtual status_t CopyPixelsIn(BBitmap *source, BPoint dest);
-
- virtual void FrameResized(float width, float height);
-
- virtual void DirectConnected(direct_buffer_info *info);
- virtual void EnableDirectMode(bool enabled);
-
- inline int32 ReferenceCount() const { return fRefCount; };
- inline ulong Options() const { return fOptions; };
- inline BGLView* GLView() { return fView; };
-
-private:
- friend class GLRendererRoster;
-
- virtual status_t _Reserved_Renderer_0(int32, void *);
- virtual status_t _Reserved_Renderer_1(int32, void *);
- virtual status_t _Reserved_Renderer_2(int32, void *);
- virtual status_t _Reserved_Renderer_3(int32, void *);
- virtual status_t _Reserved_Renderer_4(int32, void *);
-
- int32 fRefCount; // How much we're still useful
- BGLView* fView; // Never forget who is the boss!
- ulong fOptions; // Keep that tune in memory
-
- GLRendererRoster* fOwningRoster;
- renderer_id fID;
-};
-
-extern "C" _EXPORT BGLRenderer* instantiate_gl_renderer(BGLView *view, ulong options);
-
-
-#endif // GLRENDERER_H
diff --git a/include/HaikuGL/GLView.h b/include/HaikuGL/GLView.h
deleted file mode 100644
index e733377a7fa..00000000000
--- a/include/HaikuGL/GLView.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright 2008-2013, Haiku, Inc. All Rights Reserved.
- * Distributed under the terms of the MIT License.
- *
- * This header defines BGLView, the base class making up
- * the Haiku GL Kit.
- *
- */
-#ifndef BGLVIEW_H
-#define BGLVIEW_H
-
-
-#include <GL/gl.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 __cplusplus
-
-#include <AppKit.h>
-#include <Bitmap.h>
-#include <DirectWindow.h>
-#include <View.h>
-#include <Window.h>
-#include <WindowScreen.h>
-
-
-struct glview_direct_info;
-class BGLRenderer;
-class GLRendererRoster;
-
-class _EXPORT BGLView : public BView {
-public:
- BGLView(BRect rect, const char* name,
- ulong resizingMode, ulong mode,
- ulong options);
- virtual ~BGLView();
-
- void LockGL();
- void UnlockGL();
- void SwapBuffers();
- void SwapBuffers(bool vSync);
-
- BView* EmbeddedView(); // deprecated, returns NULL
- void* GetGLProcAddress(const char* procName);
-
- status_t CopyPixelsOut(BPoint source, BBitmap *dest);
- status_t CopyPixelsIn(BBitmap *source, BPoint dest);
-
- // Mesa's GLenum is uint where Be's ones was ulong!
- virtual void ErrorCallback(unsigned long errorCode);
-
- virtual void Draw(BRect updateRect);
- virtual void AttachedToWindow();
- virtual void AllAttached();
- virtual void DetachedFromWindow();
- virtual void AllDetached();
-
- virtual void FrameResized(float newWidth, float newHeight);
- virtual status_t Perform(perform_code d, void *arg);
-
- virtual status_t Archive(BMessage *data, bool deep = true) const;
-
- virtual void MessageReceived(BMessage *message);
- virtual void SetResizingMode(uint32 mode);
-
- virtual void Show();
- virtual void Hide();
-
- virtual BHandler* ResolveSpecifier(BMessage *msg, int32 index,
- BMessage *specifier, int32 form,
- const char *property);
- virtual status_t GetSupportedSuites(BMessage *data);
-
- void DirectConnected(direct_buffer_info *info);
- void EnableDirectMode(bool enabled);
-
- void* getGC() { return fGc; } // ???
-
- virtual void GetPreferredSize(float* width, float* height);
-
-private:
-
- virtual void _ReservedGLView1();
- virtual void _ReservedGLView2();
- virtual void _ReservedGLView3();
- virtual void _ReservedGLView4();
- virtual void _ReservedGLView5();
- virtual void _ReservedGLView6();
- virtual void _ReservedGLView7();
- virtual void _ReservedGLView8();
-
- BGLView(const BGLView &);
- BGLView &operator=(const BGLView &);
-
- void _DitherFront();
- bool _ConfirmDither();
- void _Draw(BRect rect);
- void _CallDirectConnected();
-
- void* fGc;
- uint32 fOptions;
- uint32 fDitherCount;
- BLocker fDrawLock;
- BLocker fDisplayLock;
- glview_direct_info* fClipInfo;
-
- BGLRenderer* fRenderer;
- GLRendererRoster* fRoster;
-
- BBitmap* fDitherMap;
- BRect fBounds;
- int16* fErrorBuffer[2];
- uint64 _reserved[8];
-
- void _LockDraw();
- void _UnlockDraw();
-
-// BeOS compatibility
-private:
- BGLView(BRect rect, char* name,
- ulong resizingMode, ulong mode,
- ulong options);
-};
-
-
-class BGLScreen : public BWindowScreen {
-public:
- BGLScreen(char* name,
- ulong screenMode, ulong options,
- status_t *error, bool debug=false);
- ~BGLScreen();
-
- void LockGL();
- void UnlockGL();
- void SwapBuffers();
- // Mesa's GLenum is uint where Be's ones was ulong!
- virtual void ErrorCallback(unsigned long errorCode);
-
- virtual void ScreenConnected(bool connected);
- virtual void FrameResized(float width, float height);
- virtual status_t Perform(perform_code code, void *arg);
-
- virtual status_t Archive(BMessage *data, bool deep = true) const;
- virtual void MessageReceived(BMessage *message);
-
- virtual void Show();
- virtual void Hide();
-
- virtual BHandler* ResolveSpecifier(BMessage *message,
- int32 index,
- BMessage *specifier,
- int32 form,
- const char *property);
- virtual status_t GetSupportedSuites(BMessage *data);
-
-private:
-
- virtual void _ReservedGLScreen1();
- virtual void _ReservedGLScreen2();
- virtual void _ReservedGLScreen3();
- virtual void _ReservedGLScreen4();
- virtual void _ReservedGLScreen5();
- virtual void _ReservedGLScreen6();
- virtual void _ReservedGLScreen7();
- virtual void _ReservedGLScreen8();
-
- BGLScreen(const BGLScreen &);
- BGLScreen &operator=(const BGLScreen &);
-
- void* fGc;
- long fOptions;
- BLocker fDrawLock;
-
- int32 fColorSpace;
- uint32 fScreenMode;
-
- uint64 _reserved[7];
-};
-
-#endif // __cplusplus
-
-#endif // BGLVIEW_H
diff --git a/include/HaikuGL/OpenGLKit.h b/include/HaikuGL/OpenGLKit.h
deleted file mode 100644
index 71d98307509..00000000000
--- a/include/HaikuGL/OpenGLKit.h
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
- * Master include file for the Haiku OpenGL Kit.
- */
-
-#include <GL/gl.h>
-#include <GLView.h>
-
-// Projects needing GL/glu.h and GL/glut.h should now
-// include these headers independently as glu and glut
-// are no longer core parts of mesa
diff --git a/include/HaikuGL/README b/include/HaikuGL/README
deleted file mode 100644
index da5e5b6b912..00000000000
--- a/include/HaikuGL/README
+++ /dev/null
@@ -1,27 +0,0 @@
-These headers make up the Haiku Op*nGL kit.
-
-Headers in this directory preserve some BeOS™ compatibility
-compatibility, so changes should be mentioned to the Haiku
-project mailing list.
-
-http://haiku-os.org
-
-Normal Haiku Op*enGL layout:
-
- * headers/os/OpenGLKit.h
- * headers/os/opengl/GLView.h
- * headers/os/opengl/GLRenderer.h
- * headers/os/opengl/GL/gl.h
- * headers/os/opengl/GL/glext.h
- * headers/os/opengl/GL/osmesa.h (needed?)
-
-Extras:
-
- * headers/os/opengl/GL/glu.h
- * headers/os/opengl/GL/glut.h
-
-OpenGL™ is a trademark of SGI. The usage of this trademark
-in the Haiku GL Kit is not a sign of any certification or
-endorsement by SGI or its affiliates. Usage is purely to
-allow legacy compatibility with the BeOS™ and its 3D GL
-rendering subsystem.
diff --git a/include/meson.build b/include/meson.build
index aa47e39c71d..c55325d2cd5 100644
--- a/include/meson.build
+++ b/include/meson.build
@@ -20,7 +20,6 @@
inc_include = [include_directories('.')]
inc_d3d9 = include_directories('D3D9')
-inc_haikugl = include_directories('HaikuGL')
# Most things assume that Android headers are in the default include
# path when compiling for Android so add the stub headers to
@@ -111,13 +110,6 @@ if with_gallium_st_nine
)
endif
-if with_platform_haiku
- install_headers(
- 'HaikuGL/GLRenderer.h', 'HaikuGL/GLView.h', 'HaikuGL/OpenGLKit.h',
- subdir : 'opengl',
- )
-endif
-
opencl_headers = files(
'CL/cl.h',
'CL/cl.hpp',
diff --git a/src/egl/meson.build b/src/egl/meson.build
index 01fccf9912c..a12f5c9dcea 100644
--- a/src/egl/meson.build
+++ b/src/egl/meson.build
@@ -146,7 +146,6 @@ if with_dri2
endif
endif
elif with_platform_haiku
- incs_for_egl += inc_haikugl
c_args_for_egl += [
'-D_EGL_BUILT_IN_DRIVER_HAIKU',
]
diff --git a/src/gallium/frontends/hgl/meson.build b/src/gallium/frontends/hgl/meson.build
index 89877158d36..c9a8fa23072 100644
--- a/src/gallium/frontends/hgl/meson.build
+++ b/src/gallium/frontends/hgl/meson.build
@@ -34,7 +34,7 @@ libsthgl = static_library(
'sthgl',
files_libsthgl,
include_directories : [
- inc_include, inc_haikugl, inc_util, inc_mesa, inc_mapi, inc_src,
+ inc_include, inc_util, inc_mesa, inc_mapi, inc_src,
inc_gallium, inc_gallium_aux
],
c_args : [libsthgl_c_args],
diff --git a/src/gallium/meson.build b/src/gallium/meson.build
index ad97e3ce682..7b77da14f30 100644
--- a/src/gallium/meson.build
+++ b/src/gallium/meson.build
@@ -218,7 +218,6 @@ if with_gallium_xa
endif
if with_platform_haiku
subdir('frontends/hgl')
- subdir('targets/haiku-softpipe')
endif
if with_gallium_st_nine
subdir('frontends/nine')
diff --git a/src/gallium/targets/haiku-softpipe/.editorconfig b/src/gallium/targets/haiku-softpipe/.editorconfig
deleted file mode 100644
index f391def61c9..00000000000
--- a/src/gallium/targets/haiku-softpipe/.editorconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-[*.{c,h,cpp,hpp}]
-indent_style = tab
diff --git a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp b/src/gallium/targets/haiku-softpipe/GalliumContext.cpp
deleted file mode 100644
index 6cef5adc0aa..00000000000
--- a/src/gallium/targets/haiku-softpipe/GalliumContext.cpp
+++ /dev/null
@@ -1,416 +0,0 @@
-/*
- * Copyright 2012, Haiku, Inc. All Rights Reserved.
- * Distributed under the terms of the MIT License.
- *
- * Authors:
- * Artur Wyszynski, harakash@gmail.com
- * Alexander von Gluck IV, kallisti5@unixzen.com
- */
-
-
-#include "GalliumContext.h"
-
-#include <stdio.h>
-#include <algorithm>
-
-#include "GLView.h"
-
-#include "bitmap_wrapper.h"
-
-#include "glapi/glapi.h"
-#include "util/format/u_formats.h"
-//#include "state_tracker/st_cb_fbo.h"
-//#include "state_tracker/st_cb_flush.h"
-#include "state_tracker/st_context.h"
-#include "frontend/sw_winsys.h"
-#include "sw/hgl/hgl_sw_winsys.h"
-#include "util/u_atomic.h"
-#include "util/u_memory.h"
-#include "util/u_framebuffer.h"
-
-#include "target-helpers/inline_sw_helper.h"
-#include "target-helpers/inline_debug_helper.h"
-
-
-#ifdef DEBUG
-# define TRACE(x...) printf("GalliumContext: " x)
-# define CALLED() TRACE("CALLED: %s\n", __PRETTY_FUNCTION__)
-#else
-# define TRACE(x...)
-# define CALLED()
-#endif
-#define ERROR(x...) printf("GalliumContext: " x)
-
-int32 GalliumContext::fDisplayRefCount = 0;
-hgl_display* GalliumContext::fDisplay = NULL;
-
-GalliumContext::GalliumContext(ulong options)
- :
- fOptions(options),
- fCurrentContext(0)
-{
- CALLED();
-
- // Make all contexts a known value
- for (context_id i = 0; i < CONTEXT_MAX; i++)
- fContext[i] = NULL;
-
- CreateDisplay();
-
- (void) mtx_init(&fMutex, mtx_plain);
-}
-
-
-GalliumContext::~GalliumContext()
-{
- CALLED();
-
- // Destroy our contexts
- Lock();
- for (context_id i = 0; i < CONTEXT_MAX; i++)
- DestroyContext(i);
- Unlock();
-
- DestroyDisplay();
-
- mtx_destroy(&fMutex);
-}
-
-
-status_t
-GalliumContext::CreateDisplay()
-{
- CALLED();
-
- if (atomic_add(&fDisplayRefCount, 1) > 0)
- return B_OK;
-
- // Allocate winsys and attach callback hooks
- struct sw_winsys* winsys = hgl_create_sw_winsys();
-
- if (!winsys) {
- ERROR("%s: Couldn't allocate sw_winsys!\n", __func__);
- return B_ERROR;
- }
-
- struct pipe_screen* screen = sw_screen_create(winsys);
-
- if (screen == NULL) {
- ERROR("%s: Couldn't create screen!\n", __func__);
- winsys->destroy(winsys);
- return B_ERROR;
- }
-
- debug_screen_wrap(screen);
-
- const char* driverName = screen->get_name(screen);
- ERROR("%s: Using %s driver.\n", __func__, driverName);
-
- fDisplay = hgl_create_display(screen);
-
- if (fDisplay == NULL) {
- ERROR("%s: Couldn't create display!\n", __func__);
- screen->destroy(screen); // will also destroy winsys
- return B_ERROR;
- }
-
- return B_OK;
-}
-
-
-void
-GalliumContext::DestroyDisplay()
-{
- if (atomic_add(&fDisplayRefCount, -1) > 1)
- return;
-
- if (fDisplay != NULL) {
- struct pipe_screen* screen = fDisplay->fscreen->screen;
- hgl_destroy_display(fDisplay); fDisplay = NULL;
- screen->destroy(screen); // destroy will deallocate object
- }
-}
-
-
-context_id
-GalliumContext::CreateContext(HGLWinsysContext *wsContext)
-{
- CALLED();
-
- struct hgl_context* context = CALLOC_STRUCT(hgl_context);
-
- if (!context) {
- ERROR("%s: Couldn't create pipe context!\n", __func__);
- return 0;
- }
-
- // Set up the initial things our context needs
- context->display = fDisplay;
-
- // Create state tracker visual
- context->stVisual = hgl_create_st_visual(fOptions);
-
- // Create state tracker framebuffers
- context->buffer = hgl_create_st_framebuffer(context, wsContext);
-
- if (!context->buffer) {
- ERROR("%s: Problem allocating framebuffer!\n", __func__);
- FREE(context->stVisual);
- return -1;
- }
-
- // Build state tracker attributes
- struct st_context_attribs attribs;
- memset(&attribs, 0, sizeof(attribs));
- attribs.options.force_glsl_extensions_warn = false;
- attribs.profile = API_OPENGL_COMPAT;
- attribs.visual = *context->stVisual;
- attribs.major = 1;
- attribs.minor = 0;
- //attribs.flags |= ST_CONTEXT_FLAG_DEBUG;
-
- struct st_context *shared = NULL;
-
- if (fOptions & BGL_SHARE_CONTEXT) {
- shared = st_api_get_current();
- TRACE("shared context: %p\n", shared);
- }
-
- // Create context using state tracker api call
- enum st_context_error result;
- context->st = st_api_create_context(fDisplay->fscreen,
- &attribs, &result, shared);
-
- if (!context->st) {
- ERROR("%s: Couldn't create mesa state tracker context!\n",
- __func__);
- switch (result) {
- case ST_CONTEXT_SUCCESS:
- ERROR("%s: State tracker error: SUCCESS?\n", __func__);
- break;
- case ST_CONTEXT_ERROR_NO_MEMORY:
- ERROR("%s: State tracker error: NO_MEMORY\n", __func__);
- break;
- case ST_CONTEXT_ERROR_BAD_VERSION:
- ERROR("%s: State tracker error: BAD_VERSION\n", __func__);
- break;
- }
-
- hgl_destroy_st_visual(context->stVisual);
- FREE(context);
- return -1;
- }
-
- assert(!context->st->frontend_context);
- context->st->frontend_context = (void*)context;
-
- struct st_context *stContext = context->st;
-
- // Init Gallium3D Post Processing
- // TODO: no pp filters are enabled yet through postProcessEnable
- context->postProcess = pp_init(stContext->pipe, context->postProcessEnable,
- stContext->cso_context, stContext,
- st_context_invalidate_state);
-
- context_id contextNext = -1;
- Lock();
- for (context_id i = 0; i < CONTEXT_MAX; i++) {
- if (fContext[i] == NULL) {
- fContext[i] = context;
- contextNext = i;
- break;
- }
- }
- Unlock();
-
- if (contextNext < 0) {
- ERROR("%s: The next context is invalid... something went wrong!\n",
- __func__);
- //st_destroy_context(context->st);
- FREE(context->stVisual);
- FREE(context);
- return -1;
- }
-
- TRACE("%s: context #%" B_PRIu64 " is the next available context\n",
- __func__, contextNext);
-
- return contextNext;
-}
-
-
-void
-GalliumContext::DestroyContext(context_id contextID)
-{
- // fMutex should be locked *before* calling DestoryContext
-
- // See if context is used
- if (!fContext[contextID])
- return;
-
- if (fContext[contextID]->st) {
- st_context_flush(fContext[contextID]->st, 0, NULL, NULL, NULL);
- st_destroy_context(fContext[contextID]->st);
- }
-
- if (fContext[contextID]->postProcess)
- pp_free(fContext[contextID]->postProcess);
-
- // Delete state tracker framebuffer objects
- if (fContext[contextID]->buffer)
- hgl_destroy_st_framebuffer(fContext[contextID]->buffer);
-
- if (fContext[contextID]->stVisual)
- hgl_destroy_st_visual(fContext[contextID]->stVisual);
-
- FREE(fContext[contextID]);
-}
-
-
-status_t
-GalliumContext::SetCurrentContext(bool set, context_id contextID)
-{
- CALLED();
-
- if (contextID < 0 || contextID > CONTEXT_MAX) {
- ERROR("%s: Invalid context ID range!\n", __func__);
- return B_ERROR;
- }
-
- Lock();
- context_id oldContextID = fCurrentContext;
- struct hgl_context* context = fContext[contextID];
-
- if (!context) {
- ERROR("%s: Invalid context provided (#%" B_PRIu64 ")!\n",
- __func__, contextID);
- Unlock();
- return B_ERROR;
- }
-
- if (!set) {
- st_api_make_current(NULL, NULL, NULL);
- Unlock();
- return B_OK;
- }
-
- // Everything seems valid, lets set the new context.
- fCurrentContext = contextID;
-
- if (oldContextID > 0 && oldContextID != contextID) {
- st_context_flush(fContext[oldContextID]->st,
- ST_FLUSH_FRONT, NULL, NULL, NULL);
- }
-
- // We need to lock and unlock framebuffers before accessing them
- st_api_make_current(context->st, &context->buffer->base,
- &context->buffer->base);
- Unlock();
-
- return B_OK;
-}
-
-
-status_t
-GalliumContext::SwapBuffers(context_id contextID)
-{
- CALLED();
-
- Lock();
- struct hgl_context* context = fContext[contextID];
-
- if (!context) {
- ERROR("%s: context not found\n", __func__);
- Unlock();
- return B_ERROR;
- }
-
- // will flush front buffer if no double buffering is used
- st_context_flush(context->st, ST_FLUSH_FRONT, NULL, NULL, NULL);
-
- struct hgl_buffer* buffer = context->buffer;
-
- // flush back buffer and swap buffers if double buffering is used
- if (buffer->textures[ST_ATTACHMENT_BACK_LEFT] != NULL) {
- buffer->screen->flush_frontbuffer(buffer->screen, NULL, buffer->textures[ST_ATTACHMENT_BACK_LEFT],
- 0, 0, buffer->winsysContext, NULL);
- std::swap(buffer->textures[ST_ATTACHMENT_FRONT_LEFT], buffer->textures[ST_ATTACHMENT_BACK_LEFT]);
- p_atomic_inc(&buffer->base.stamp);
- }
-
- /* TODO: remove this if the framebuffer state doesn't change. */
- st_context_invalidate_state(context->st, ST_INVALIDATE_FB_STATE);
-
- Unlock();
- return B_OK;
-}
-
-
-void
-GalliumContext::Draw(context_id contextID, BRect updateRect)
-{
- struct hgl_context *context = fContext[contextID];
-
- if (!context) {
- ERROR("%s: context not found\n", __func__);
- return;
- }
-
- struct hgl_buffer* buffer = context->buffer;
-
- if (buffer->textures[ST_ATTACHMENT_FRONT_LEFT] == NULL)
- return;
-
- buffer->screen->flush_frontbuffer(buffer->screen, NULL, buffer->textures[ST_ATTACHMENT_FRONT_LEFT],
- 0, 0, buffer->winsysContext, NULL);
-}
-
-
-bool
-GalliumContext::Validate(uint32 width, uint32 height)
-{
- CALLED();
-
- if (!fContext[fCurrentContext])
- return false;
-
- if (fContext[fCurrentContext]->width != width + 1
- || fContext[fCurrentContext]->height != height + 1) {
- Invalidate(width, height);
- return false;
- }
- return true;
-}
-
-
-void
-GalliumContext::Invalidate(uint32 width, uint32 height)
-{
- CALLED();
-
- assert(fContext[fCurrentContext]);
-
- // Update st_context dimensions
- fContext[fCurrentContext]->width = width + 1;
- fContext[fCurrentContext]->height = height + 1;
-
- // Is this the best way to invalidate?
- p_atomic_inc(&fContext[fCurrentContext]->buffer->base.stamp);
-}
-
-
-void
-GalliumContext::Lock()
-{
- CALLED();
- mtx_lock(&fMutex);
-}
-
-
-void
-GalliumContext::Unlock()
-{
- CALLED();
- mtx_unlock(&fMutex);
-}
-/* vim: set tabstop=4: */
diff --git a/src/gallium/targets/haiku-softpipe/GalliumContext.h b/src/gallium/targets/haiku-softpipe/GalliumContext.h
deleted file mode 100644
index 1947b96c305..00000000000
--- a/src/gallium/targets/haiku-softpipe/GalliumContext.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright 2009, Haiku, Inc. All Rights Reserved.
- * Distributed under the terms of the MIT License.
- *
- * Authors:
- * Alexander von Gluck IV, kallisti5@unixzen.com
- */
-#ifndef GALLIUMCONTEXT_H
-#define GALLIUMCONTEXT_H
-
-
-#include <stddef.h>
-#include <kernel/image.h>
-
-#include "pipe/p_compiler.h"
-#include "pipe/p_screen.h"
-#include "postprocess/filters.h"
-#include "hgl_context.h"
-#include "sw/hgl/hgl_sw_winsys.h"
-
-
-class BBitmap;
-
-class GalliumContext {
-public:
- GalliumContext(ulong options);
- ~GalliumContext();
-
- void Lock();
- void Unlock();
-
- context_id CreateContext(HGLWinsysContext *wsContext);
- void DestroyContext(context_id contextID);
- context_id GetCurrentContext() { return fCurrentContext; };
- status_t SetCurrentContext(bool set, context_id contextID);
-
- status_t SwapBuffers(context_id contextID);
- void Draw(context_id contextID, BRect updateRect);
-
- bool Validate(uint32 width, uint32 height);
- void Invalidate(uint32 width, uint32 height);
-
-private:
- status_t CreateDisplay();
- void DestroyDisplay();
- void Flush();
-
- ulong fOptions;
- static int32 fDisplayRefCount;
- static hgl_display* fDisplay;
-
- // Context Management
- struct hgl_context* fContext[CONTEXT_MAX];
- context_id fCurrentContext;
- mtx_t fMutex;
-};
-
-
-#endif /* GALLIUMCONTEXT_H */
diff --git a/src/gallium/targets/haiku-softpipe/SoftwareRenderer.cpp b/src/gallium/targets/haiku-softpipe/SoftwareRenderer.cpp
deleted file mode 100644
index 96f19ae0884..00000000000
--- a/src/gallium/targets/haiku-softpipe/SoftwareRenderer.cpp
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- * Copyright 2006-2012, Haiku, Inc. All rights reserved.
- * Distributed under the terms of the MIT License.
- *
- * Authors:
- * Jérôme Duval, korli@users.berlios.de
- * Philippe Houdoin, philippe.houdoin@free.fr
- * Artur Wyszynski, harakash@gmail.com
- * Alexander von Gluck IV, kallisti5@unixzen.com
- */
-
-
-#include "SoftwareRenderer.h"
-
-#include <Autolock.h>
-#include <interface/DirectWindowPrivate.h>
-#include <GraphicsDefs.h>
-#include <Screen.h>
-#include <stdio.h>
-#include <sys/time.h>
-#include <new>
-
-
-#ifdef DEBUG
-# define TRACE(x...) printf("SoftwareRenderer: " x)
-# define CALLED() TRACE("CALLED: %s\n", __PRETTY_FUNCTION__)
-#else
-# define TRACE(x...)
-# define CALLED()
-#endif
-#define ERROR(x...) printf("SoftwareRenderer: " x)
-
-
-extern const char* color_space_name(color_space space);
-
-
-extern "C" _EXPORT BGLRenderer*
-instantiate_gl_renderer(BGLView *view, ulong opts)
-{
- return new SoftwareRenderer(view, opts);
-}
-
-struct RasBuf32
-{
- int32 width, height, stride;
- int32 orgX, orgY;
- int32 *colors;
-
- RasBuf32(int32 width, int32 height, int32 stride, int32 orgX, int32 orgY, int32 *colors):
- width(width), height(height), stride(stride), orgX(orgX), orgY(orgY), colors(colors)
- {}
-
- RasBuf32(BBitmap *bmp)
- {
- width = bmp->Bounds().IntegerWidth() + 1;
- height = bmp->Bounds().IntegerHeight() + 1;
- stride = bmp->BytesPerRow()/4;
- orgX = 0;
- orgY = 0;
- colors = (int32*)bmp->Bits();
- }
-
- RasBuf32(direct_buffer_info *info)
- {
- width = 0x7fffffff;
- height = 0x7fffffff;
- stride = info->bytes_per_row/4;
- orgX = 0;
- orgY = 0;
- colors = (int32*)info->bits;
- }
-
- void ClipSize(int32 x, int32 y, int32 w, int32 h)
- {
- if (x < 0) {w += x; x = 0;}
- if (y < 0) {h += y; y = 0;}
- if (x + w > width) {w = width - x;}
- if (y + h > height) {h = height - y;}
- if ((w > 0) && (h > 0)) {
- colors += y*stride + x;
- width = w;
- height = h;
- } else {
- width = 0; height = 0; colors = NULL;
- }
- if (x + orgX > 0) {orgX += x;} else {orgX = 0;}
- if (y + orgY > 0) {orgY += y;} else {orgY = 0;}
- }
-
- void ClipRect(int32 l, int32 t, int32 r, int32 b)
- {
- ClipSize(l, t, r - l, b - t);
- }
-
- void Shift(int32 dx, int32 dy)
- {
- orgX += dx;
- orgY += dy;
- }
-
- void Clear(int32 color)
- {
- RasBuf32 dst = *this;
- dst.stride -= dst.width;
- for (; dst.height > 0; dst.height--) {
- for (int32 i = dst.width; i > 0; i--)
- *dst.colors++ = color;
- dst.colors += dst.stride;
- }
- }
-
- void Blit(RasBuf32 src)
- {
- RasBuf32 dst = *this;
- int32 x, y;
- x = src.orgX - orgX;
- y = src.orgY - orgY;
- dst.ClipSize(x, y, src.width, src.height);
- src.ClipSize(-x, -y, width, height);
- for (; dst.height > 0; dst.height--) {
- memcpy(dst.colors, src.colors, 4*dst.width);
- dst.colors += dst.stride;
- src.colors += src.stride;
- }
- }
-};
-
-SoftwareRenderer::SoftwareRenderer(BGLView *view, ulong options)
- :
- BGLRenderer(view, options),
- fDirectModeEnabled(false),
- fInfo(NULL),
- fInfoLocker("info locker"),
- fOptions(options),
- fColorSpace(B_NO_COLOR_SPACE)
-{
- CALLED();
-
- // Initialize the "Haiku Software GL Pipe"
- time_t beg;
- time_t end;
- beg = time(NULL);
- fContextObj = new GalliumContext(options);
- end = time(NULL);
- TRACE("Haiku Software GL Pipe initialization time: %f.\n",
- difftime(end, beg));
-
- BRect b = view->Bounds();
- fColorSpace = BScreen(view->Window()).ColorSpace();
- TRACE("%s: Colorspace:\t%s\n", __func__, color_space_name(fColorSpace));
-
- fWidth = (GLint)b.IntegerWidth();
- fHeight = (GLint)b.IntegerHeight();
-
- // Initialize the first "Haiku Software GL Pipe" context
- beg = time(NULL);
- fContextID = fContextObj->CreateContext(this);
- end = time(NULL);
-
- if (fContextID < 0)
- ERROR("%s: There was an error creating the context!\n", __func__);
- else {
- TRACE("%s: Haiku Software GL Pipe context creation time: %f.\n",
- __func__, difftime(end, beg));
- }
-
- if (!fContextObj->GetCurrentContext())
- LockGL();
-}
-
-
-SoftwareRenderer::~SoftwareRenderer()
-{
- CALLED();
-
- if (fContextObj)
- delete fContextObj;
-}
-
-
-void
-SoftwareRenderer::LockGL()
-{
-// CALLED();
- BGLRenderer::LockGL();
-
- color_space cs = BScreen(GLView()->Window()).ColorSpace();
-
- {
- BAutolock lock(fInfoLocker);
- if (fDirectModeEnabled && fInfo != NULL) {
- fWidth = fInfo->window_bounds.right - fInfo->window_bounds.left;
- fHeight = fInfo->window_bounds.bottom - fInfo->window_bounds.top;
- }
-
- fContextObj->Validate(fWidth, fHeight);
- fColorSpace = cs;
- }
-
- // do not hold fInfoLocker here to avoid deadlock
- fContextObj->SetCurrentContext(true, fContextID);
-}
-
-
-void
-SoftwareRenderer::UnlockGL()
-{
-// CALLED();
- if ((fOptions & BGL_DOUBLE) == 0) {
- SwapBuffers();
- }
- fContextObj->SetCurrentContext(false, fContextID);
- BGLRenderer::UnlockGL();
-}
-
-
-void
-SoftwareRenderer::Display(BBitmap *bitmap, BRect *updateRect)
-{
-// CALLED();
-
- if (!fDirectModeEnabled) {
- // TODO: avoid timeout
- if (GLView()->LockLooperWithTimeout(1000) == B_OK) {
- GLView()->DrawBitmap(bitmap, B_ORIGIN);
- GLView()->UnlockLooper();
- }
- } else {
- BAutolock lock(fInfoLocker);
- if (fInfo != NULL) {
- RasBuf32 srcBuf(bitmap);
- RasBuf32 dstBuf(fInfo);
- for (uint32 i = 0; i < fInfo->clip_list_count; i++) {
- clipping_rect *clip = &fInfo->clip_list[i];
- RasBuf32 dstClip = dstBuf;
- dstClip.ClipRect(clip->left, clip->top, clip->right + 1, clip->bottom + 1);
- dstClip.Shift(-fInfo->window_bounds.left, -fInfo->window_bounds.top);
- dstClip.Blit(srcBuf);
- }
- }
- }
-}
-
-
-void
-SoftwareRenderer::SwapBuffers(bool vsync)
-{
- BScreen screen(GLView()->Window());
- fContextObj->SwapBuffers(fContextID);
- fContextObj->Validate(fWidth, fHeight);
- if (vsync)
- screen.WaitForRetrace();
-}
-
-void
-SoftwareRenderer::Draw(BRect updateRect)
-{
-// CALLED();
- fContextObj->Draw(fContextID, updateRect);
-}
-
-
-status_t
-SoftwareRenderer::CopyPixelsOut(BPoint location, BBitmap *bitmap)
-{
- CALLED();
-
- // TODO: implement
- return B_ERROR;
-}
-
-
-status_t
-SoftwareRenderer::CopyPixelsIn(BBitmap *bitmap, BPoint location)
-{
- CALLED();
-
- // TODO: implement
- return B_ERROR;
-}
-
-
-void
-SoftwareRenderer::EnableDirectMode(bool enabled)
-{
- fDirectModeEnabled = enabled;
-}
-
-
-void
-SoftwareRenderer::DirectConnected(direct_buffer_info *info)
-{
-// CALLED();
- BAutolock lock(fInfoLocker);
- if (info) {
- if (!fInfo) {
- fInfo = (direct_buffer_info *)calloc(1,
- DIRECT_BUFFER_INFO_AREA_SIZE);
- }
- memcpy(fInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE);
- } else if (fInfo) {
- free(fInfo);
- fInfo = NULL;
- }
-}
-
-
-void
-SoftwareRenderer::FrameResized(float width, float height)
-{
- TRACE("%s: %f x %f\n", __func__, width, height);
-
- BAutolock lock(fInfoLocker);
- fWidth = (GLuint)width;
- fHeight = (GLuint)height;
-}
diff --git a/src/gallium/targets/haiku-softpipe/SoftwareRenderer.h b/src/gallium/targets/haiku-softpipe/SoftwareRenderer.h
deleted file mode 100644
index 66ff71c10d1..00000000000
--- a/src/gallium/targets/haiku-softpipe/SoftwareRenderer.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright 2006-2012, Haiku, Inc. All rights reserved.
- * Distributed under the terms of the MIT License.
- *
- * Authors:
- * Jérôme Duval, korli@users.berlios.de
- * Philippe Houdoin, philippe.houdoin@free.fr
- * Artur Wyszynski, harakash@gmail.com
- * Alexander von Gluck IV, kallisti5@unixzen.com
- */
-#ifndef SOFTWARERENDERER_H
-#define SOFTWARERENDERER_H
-
-
-#include <kernel/image.h>
-
-#include "GLRenderer.h"
-#include "GalliumContext.h"
-
-
-class SoftwareRenderer : public BGLRenderer, public HGLWinsysContext {
-public:
- SoftwareRenderer(BGLView *view,
- ulong bgl_options);
- virtual ~SoftwareRenderer();
-
- void LockGL();
- void UnlockGL();
-
- void Display(BBitmap* bitmap, BRect* updateRect);
-
- void SwapBuffers(bool vsync = false);
- void Draw(BRect updateRect);
- status_t CopyPixelsOut(BPoint source, BBitmap *dest);
- status_t CopyPixelsIn(BBitmap *source, BPoint dest);
- void FrameResized(float width, float height);
-
- void EnableDirectMode(bool enabled);
- void DirectConnected(direct_buffer_info *info);
-
-private:
- GalliumContext* fContextObj;
- context_id fContextID;
-
- bool fDirectModeEnabled;
- direct_buffer_info* fInfo;
- BLocker fInfoLocker;
- ulong fOptions;
- GLuint fWidth;
- GLuint fHeight;
- color_space fColorSpace;
-};
-
-#endif // SOFTPIPERENDERER_H
diff --git a/src/gallium/targets/haiku-softpipe/SoftwareRenderer.rdef b/src/gallium/targets/haiku-softpipe/SoftwareRenderer.rdef
deleted file mode 100644
index f9d01b2609a..00000000000
--- a/src/gallium/targets/haiku-softpipe/SoftwareRenderer.rdef
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright 2012, Haiku, Inc. All rights reserved.
- * Distributed under the terms of the MIT License.
- */
-
-resource app_signature "application/x-vnd.Haiku-swpipe";
-
-resource app_version {
- major = 9,
- middle = 0,
- minor = 0,
- variety = 0,
- internal = 0,
- short_info = "Software Renderer",
- long_info = "Haiku Gallium Software GL Renderer"
-};
-
-resource vector_icon {
- $"6E6369660A0200140294A9FF18020014028DFFFF97058C0500020006023B10B7"
- $"37F036BA1A993D466848C719BEBE2000919292FFD5D5D5020016023900000000"
- $"000000003EE0004AE00048E0005EF884C702000203392E8D383001BAD97F3C12"
- $"8B4786BD48B8AD0D97BBFFFF7B4168DBE9FF4168DB97020002023A0C1238D099"
- $"BE44203F4BD14B38844678240DF56A7D9FE1EA064CC704016B0500090A044024"
- $"2438404C5C380A044028243C40505C3C0A042438243B5C3C5C380608BFBE4D59"
- $"4D59515957575659585560406044603C5E3A5C3CCB4FBFBA5E3ECA9DC11F564B"
- $"584A544C504C0606AF0F2F3D2F3D393D4034BF593542324130432F42364432C0"
- $"3FBC5A2F48354A2F480608AE9A22303EB5BD3AB42542B755422E412F3C29322D"
- $"32223C0204263726372538263F253E263F304430443143303C313D303C02043D"
- $"423D423C433D4A3C493D4A495049504A4F49474A484947060DAEAAAE014E445A"
- $"3456365E325E3D5D3F5A3A5542544E4D573A4E364439463342324A2242310A0A"
- $"0002020102403CA00C88888C8CC1401673C40D6544F2950A01010002403CA000"
- $"0000000000401673C40D65446CF80A08020304023EC16A0000000000003EC16A"
- $"45DD1844C6550A030105123EC16A0000000000003EC16A45DD1844C655011784"
- $"22040A040105023EC16A0000000000003EC16A45DD1844C6550A030108123EC1"
- $"6A0000000000003EC16A45DD1844C65501178422040A0503080706023EC16A00"
- $"00000000003EC16A45DD1844C6550A030206071A3EC16A0000000000003EC16A"
- $"45DD1844C65510FF0215810004178222040A060106023EC16A0000000000003E"
- $"C16A45DD1844C6550A070107023EC16A0000000000003EC16A45DD1844C655"
-};
diff --git a/src/gallium/targets/haiku-softpipe/meson.build b/src/gallium/targets/haiku-softpipe/meson.build
deleted file mode 100644
index 2495779c9cc..00000000000
--- a/src/gallium/targets/haiku-softpipe/meson.build
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright © 2017 Dylan Baker
-
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-libswpipe = shared_library(
- 'swpipe',
- files('SoftwareRenderer.cpp', 'GalliumContext.cpp'),
- include_directories : [
- inc_include, inc_src, inc_mapi, inc_mesa, inc_gallium, inc_gallium_aux, inc_util, inc_haikugl, inc_gallium_drivers, inc_gallium_winsys,
- include_directories('../../frontends/hgl'),
- include_directories('/boot/system/develop/headers/private')
- ],
- gnu_symbol_visibility : 'hidden',
- link_args : [ld_args_bsymbolic, ld_args_gc_sections],
- link_with : [
- libglapi, libswhgl, libsthgl, libcompiler,
- libmesa, libglsl, libgallium, libgl
- ],
- dependencies : [
- driver_swrast, cpp.find_library('be'), cpp.find_library('translation'),
- cpp.find_library('network'), dep_unwind, idep_mesautil, idep_nir,
- ],
- install : true,
-)
diff --git a/src/hgl/.editorconfig b/src/hgl/.editorconfig
deleted file mode 100644
index 0a01d20a29a..00000000000
--- a/src/hgl/.editorconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-[*.{cpp,h}]
-indent_style = tab
diff --git a/src/hgl/GLRenderer.cpp b/src/hgl/GLRenderer.cpp
deleted file mode 100644
index af89b4e15eb..00000000000
--- a/src/hgl/GLRenderer.cpp
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright 2006-2008, Philippe Houdoin. All rights reserved.
- * Distributed under the terms of the MIT License.
- */
-
-
-#include <kernel/image.h>
-
-#include "GLRenderer.h"
-
-
-BGLRenderer::BGLRenderer(BGLView* view, ulong glOptions)
- :
- fRefCount(1),
- fView(view),
- fOptions(glOptions)
-{
-}
-
-
-BGLRenderer::~BGLRenderer()
-{
-}
-
-
-void
-BGLRenderer::Acquire()
-{
- atomic_add(&fRefCount, 1);
-}
-
-
-void
-BGLRenderer::Release()
-{
- if (atomic_add(&fRefCount, -1) <= 1)
- delete this;
-}
-
-
-void
-BGLRenderer::LockGL()
-{
-}
-
-
-void
-BGLRenderer::UnlockGL()
-{
-}
-
-
-void
-BGLRenderer::SwapBuffers(bool VSync)
-{
-}
-
-
-void
-BGLRenderer::Draw(BRect updateRect)
-{
-}
-
-
-status_t
-BGLRenderer::CopyPixelsOut(BPoint source, BBitmap* dest)
-{
- return B_ERROR;
-}
-
-
-status_t
-BGLRenderer::CopyPixelsIn(BBitmap* source, BPoint dest)
-{
- return B_ERROR;
-}
-
-
-void
-BGLRenderer::FrameResized(float width, float height)
-{
-}
-
-
-void
-BGLRenderer::DirectConnected(direct_buffer_info* info)
-{
-}
-
-
-void
-BGLRenderer::EnableDirectMode(bool enabled)
-{
-}
-
-
-status_t BGLRenderer::_Reserved_Renderer_0(int32 n, void* p) { return B_ERROR; }
-status_t BGLRenderer::_Reserved_Renderer_1(int32 n, void* p) { return B_ERROR; }
-status_t BGLRenderer::_Reserved_Renderer_2(int32 n, void* p) { return B_ERROR; }
-status_t BGLRenderer::_Reserved_Renderer_3(int32 n, void* p) { return B_ERROR; }
-status_t BGLRenderer::_Reserved_Renderer_4(int32 n, void* p) { return B_ERROR; }
diff --git a/src/hgl/GLRendererRoster.cpp b/src/hgl/GLRendererRoster.cpp
deleted file mode 100644
index 9bb10498756..00000000000
--- a/src/hgl/GLRendererRoster.cpp
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Copyright 2006-2012 Haiku, Inc. All Rights Reserved.
- * Distributed under the terms of the MIT License.
- *
- * Authors:
- * Philippe Houdoin <philippe.houdoin@free.fr>
- * Alexander von Gluck IV <kallisti5@unixzen.com>
- */
-
-
-#include <driver_settings.h>
-#include <image.h>
-
-#include <kernel/image.h>
-#include <private/system/safemode_defs.h>
-
-#include <Directory.h>
-#include <FindDirectory.h>
-#include <Path.h>
-#include <strings.h>
-#include "GLRendererRoster.h"
-
-#include <new>
-#include <string.h>
-#include <stdio.h>
-
-
-extern "C" status_t _kern_get_safemode_option(const char* parameter,
- char* buffer, size_t* _bufferSize);
-
-GLRendererRoster *GLRendererRoster::fInstance = NULL;
-
-GLRendererRoster *GLRendererRoster::Roster()
-{
- if (fInstance == NULL) {
- fInstance = new GLRendererRoster();
- }
- return fInstance;
-}
-
-GLRendererRoster::GLRendererRoster()
- :
- fSafeMode(false),
- fABISubDirectory(NULL)
-{
- char parameter[32];
- size_t parameterLength = sizeof(parameter);
-
- if (_kern_get_safemode_option(B_SAFEMODE_SAFE_MODE,
- parameter, &parameterLength) == B_OK) {
- if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on")
- || !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes")
- || !strcasecmp(parameter, "enable") || !strcmp(parameter, "1"))
- fSafeMode = true;
- }
-
- if (_kern_get_safemode_option(B_SAFEMODE_DISABLE_USER_ADD_ONS,
- parameter, &parameterLength) == B_OK) {
- if (!strcasecmp(parameter, "enabled") || !strcasecmp(parameter, "on")
- || !strcasecmp(parameter, "true") || !strcasecmp(parameter, "yes")
- || !strcasecmp(parameter, "enable") || !strcmp(parameter, "1"))
- fSafeMode = true;
- }
-
- // We might run in compatibility mode on a system with a different ABI. The
- // renderers matching our ABI can usually be found in respective
- // subdirectories of the opengl add-ons directories.
- system_info info;
- if (get_system_info(&info) == B_OK
- && (info.abi & B_HAIKU_ABI_MAJOR)
- != (B_HAIKU_ABI & B_HAIKU_ABI_MAJOR)) {
- switch (B_HAIKU_ABI & B_HAIKU_ABI_MAJOR) {
- case B_HAIKU_ABI_GCC_2:
- fABISubDirectory = "gcc2";
- break;
- case B_HAIKU_ABI_GCC_4:
- fABISubDirectory = "gcc4";
- break;
- }
- }
-
- AddDefaultPaths();
-}
-
-
-GLRendererRoster::~GLRendererRoster()
-{
-
-}
-
-
-BGLRenderer*
-GLRendererRoster::GetRenderer(BGLView *view, ulong options)
-{
- for (
- RendererMap::const_iterator iterator = fRenderers.begin();
- iterator != fRenderers.end();
- iterator++
- ) {
- renderer_item item = *iterator;
- BGLRenderer* renderer;
- renderer = item.entry(view, options);
- return renderer;
- }
- return NULL;
-}
-
-
-void
-GLRendererRoster::AddDefaultPaths()
-{
- // add user directories first, so that they can override system renderers
- const directory_which paths[] = {
- B_USER_NONPACKAGED_ADDONS_DIRECTORY,
- B_USER_ADDONS_DIRECTORY,
- B_SYSTEM_NONPACKAGED_ADDONS_DIRECTORY,
- B_SYSTEM_ADDONS_DIRECTORY,
- };
-
- for (uint32 i = fSafeMode ? 4 : 0;
- i < sizeof(paths) / sizeof(paths[0]); i++) {
- BPath path;
- status_t status = find_directory(paths[i], &path, true);
- if (status == B_OK && path.Append("opengl") == B_OK)
- AddPath(path.Path());
- }
-}
-
-
-status_t
-GLRendererRoster::AddPath(const char* path)
-{
- BDirectory directory(path);
- status_t status = directory.InitCheck();
- if (status < B_OK)
- return status;
-
- // if a subdirectory for our ABI exists, use that instead
- if (fABISubDirectory != NULL) {
- BEntry entry(&directory, fABISubDirectory);
- if (entry.IsDirectory()) {
- status = directory.SetTo(&entry);
- if (status != B_OK)
- return status;
- }
- }
-
- node_ref nodeRef;
- status = directory.GetNodeRef(&nodeRef);
- if (status < B_OK)
- return status;
-
- int32 count = 0;
- int32 files = 0;
-
- entry_ref ref;
- BEntry entry;
- while (directory.GetNextRef(&ref) == B_OK) {
- entry.SetTo(&ref, true);
- if (entry.InitCheck() == B_OK && !entry.IsFile())
- continue;
-
- if (CreateRenderer(ref) == B_OK)
- count++;
-
- files++;
- }
-
- if (files != 0 && count == 0)
- return B_BAD_VALUE;
-
- return B_OK;
-}
-
-
-status_t
-GLRendererRoster::AddRenderer(InstantiateRenderer entry,
- image_id image, const entry_ref* ref, ino_t node)
-{
- renderer_item item;
- item.entry = entry;
- item.image = image;
- item.node = node;
- if (ref != NULL)
- item.ref = *ref;
-
- try {
- fRenderers.push_back(item);
- } catch (...) {
- return B_NO_MEMORY;
- }
-
- return B_OK;
-}
-
-
-status_t
-GLRendererRoster::CreateRenderer(const entry_ref& ref)
-{
- BEntry entry(&ref, true);
- node_ref nodeRef;
- status_t status = entry.GetNodeRef(&nodeRef);
- if (status < B_OK)
- return status;
-
- BPath path(&ref);
- printf("OpenGL load add-on: %s\n", path.Path());
-
- image_id image = load_add_on(path.Path());
- if (image < B_OK)
- return image;
-
- InstantiateRenderer instantiate_renderer;
-
- status = get_image_symbol(
- image, "instantiate_gl_renderer",
- B_SYMBOL_TYPE_TEXT, (void**)&instantiate_renderer
- );
-
- if (status == B_OK) {
- if ((status = AddRenderer(instantiate_renderer, image, &ref, nodeRef.node)) != B_OK) {
- unload_add_on(image);
- return status;
- }
- printf("OpenGL add-on registered: %s\n", path.Path());
- return B_OK;
- }
-
- printf("OpenGL add-on failed to instantiate: %s\n", path.Path());
- unload_add_on(image);
-
- return status;
-}
diff --git a/src/hgl/GLRendererRoster.h b/src/hgl/GLRendererRoster.h
deleted file mode 100644
index 66abad9d5e2..00000000000
--- a/src/hgl/GLRendererRoster.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright 2006-2012, Haiku, Inc. All Rights Reserved.
- * Distributed under the terms of the MIT License.
- *
- * Authors:
- * Philippe Houdoin <philippe.houdoin@free.fr>
- */
-#ifndef _GLRENDERER_ROSTER_H
-#define _GLRENDERER_ROSTER_H
-
-
-#include <GLRenderer.h>
-
-#include <vector>
-
-
-typedef BGLRenderer* (*InstantiateRenderer) (BGLView* view, ulong options);
-
-struct renderer_item {
- InstantiateRenderer entry;
- entry_ref ref;
- ino_t node;
- image_id image;
-};
-
-typedef std::vector<renderer_item> RendererMap;
-
-
-class GLRendererRoster {
- public:
- static GLRendererRoster *Roster();
- BGLRenderer* GetRenderer(BGLView *view, ulong options);
-
- private:
- GLRendererRoster();
- virtual ~GLRendererRoster();
-
- void AddDefaultPaths();
- status_t AddPath(const char* path);
- status_t AddRenderer(InstantiateRenderer entry, image_id image,
- const entry_ref* ref, ino_t node);
- status_t CreateRenderer(const entry_ref& ref);
-
- static GLRendererRoster* fInstance;
- bool fSafeMode;
- const char* fABISubDirectory;
-
- RendererMap fRenderers;
-};
-
-
-#endif /* _GLRENDERER_ROSTER_H */
diff --git a/src/hgl/GLView.cpp b/src/hgl/GLView.cpp
deleted file mode 100644
index 3462c885494..00000000000
--- a/src/hgl/GLView.cpp
+++ /dev/null
@@ -1,635 +0,0 @@
-/*
- * Copyright 2006-2012, Haiku. All rights reserved.
- * Distributed under the terms of the MIT License.
- *
- * Authors:
- * Jérôme Duval, korli@users.berlios.de
- * Philippe Houdoin, philippe.houdoin@free.fr
- * Stefano Ceccherini, burton666@libero.it
- */
-
-#include <kernel/image.h>
-
-#include <GLView.h>
-
-#include <assert.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <DirectWindow.h>
-#include "GLRenderer.h"
-
-#include <private/interface/DirectWindowPrivate.h>
-#include "GLRendererRoster.h"
-
-#include "glapi/glapi.h"
-
-struct glview_direct_info {
- direct_buffer_info* direct_info;
- bool direct_connected;
- bool enable_direct_mode;
-
- glview_direct_info();
- ~glview_direct_info();
-};
-
-
-BGLView::BGLView(BRect rect, const char* name, ulong resizingMode, ulong mode,
- ulong options)
- :
- BView(rect, name, B_FOLLOW_ALL_SIDES, mode | B_WILL_DRAW | B_FRAME_EVENTS),
- fGc(NULL),
- fOptions(options),
- fDitherCount(0),
- fDrawLock("BGLView draw lock"),
- fDisplayLock("BGLView display lock"),
- fClipInfo(NULL),
- fRenderer(NULL),
- fDitherMap(NULL)
-{
- fRenderer = GLRendererRoster::Roster()->GetRenderer(this, options);
-}
-
-
-BGLView::~BGLView()
-{
- delete fClipInfo;
- if (fRenderer)
- fRenderer->Release();
-}
-
-
-void
-BGLView::LockGL()
-{
- // TODO: acquire the OpenGL API lock it on this glview
-
- fDisplayLock.Lock();
- if (fRenderer != NULL && fDisplayLock.CountLocks() == 1)
- fRenderer->LockGL();
-}
-
-
-void
-BGLView::UnlockGL()
-{
- thread_id lockerThread = fDisplayLock.LockingThread();
- thread_id callerThread = find_thread(NULL);
-
- if (lockerThread != B_ERROR && lockerThread != callerThread) {
- printf("UnlockGL is called from wrong thread, lockerThread: %d, callerThread: %d\n",
- (int)lockerThread, (int)callerThread);
- debugger("[!]");
- }
-
- if (fRenderer != NULL && fDisplayLock.CountLocks() == 1)
- fRenderer->UnlockGL();
- fDisplayLock.Unlock();
-
- // TODO: release the GL API lock to others glviews
-}
-
-
-void
-BGLView::SwapBuffers()
-{
- SwapBuffers(false);
-}
-
-
-void
-BGLView::SwapBuffers(bool vSync)
-{
- if (fRenderer) {
- _LockDraw();
- fRenderer->SwapBuffers(vSync);
- _UnlockDraw();
- }
-}
-
-
-BView*
-BGLView::EmbeddedView()
-{
- return NULL;
-}
-
-
-void*
-BGLView::GetGLProcAddress(const char* procName)
-{
- return (void*)_glapi_get_proc_address(procName);
-}
-
-
-status_t
-BGLView::CopyPixelsOut(BPoint source, BBitmap* dest)
-{
- if (!fRenderer)
- return B_ERROR;
-
- if (!dest || !dest->Bounds().IsValid())
- return B_BAD_VALUE;
-
- return fRenderer->CopyPixelsOut(source, dest);
-}
-
-
-status_t
-BGLView::CopyPixelsIn(BBitmap* source, BPoint dest)
-{
- if (!fRenderer)
- return B_ERROR;
-
- if (!source || !source->Bounds().IsValid())
- return B_BAD_VALUE;
-
- return fRenderer->CopyPixelsIn(source, dest);
-}
-
-
-/*! Mesa's GLenum is not ulong but uint, so we can't use GLenum
- without breaking this method signature.
- Instead, we have to use the effective BeOS's SGI OpenGL GLenum type:
- unsigned long.
- */
-void
-BGLView::ErrorCallback(unsigned long errorCode)
-{
- char msg[32];
- sprintf(msg, "GL: Error code $%04lx.", errorCode);
- // TODO: under BeOS R5, it call debugger(msg);
- fprintf(stderr, "%s\n", msg);
-}
-
-
-void
-BGLView::Draw(BRect updateRect)
-{
- if (fRenderer) {
- if (!fClipInfo || !fClipInfo->enable_direct_mode)
- fRenderer->Draw(updateRect);
- return;
- }
- // TODO: auto-size and center the string
- MovePenTo(8, 32);
- DrawString("No OpenGL renderer available!");
-}
-
-
-void
-BGLView::AttachedToWindow()
-{
- BView::AttachedToWindow();
-
- fBounds = Bounds();
- for (BView* view = this; view != NULL; view = view->Parent())
- view->ConvertToParent(&fBounds);
-
- if (fRenderer != NULL) {
- // Jackburton: The following code was commented because it doesn't look
- // good in "direct" mode:
- // when the window is moved, the app_server doesn't paint the view's
- // background, and the stuff behind the window itself shows up.
- // Setting the view color to black, instead, looks a bit more elegant.
-#if 0
- // Don't paint white window background when resized
- SetViewColor(B_TRANSPARENT_32_BIT);
-#else
- SetViewColor(0, 0, 0);
-#endif
-
- // Set default OpenGL viewport:
- LockGL();
- glViewport(0, 0, Bounds().IntegerWidth(), Bounds().IntegerHeight());
- UnlockGL();
- fRenderer->FrameResized(Bounds().IntegerWidth(),
- Bounds().IntegerHeight());
-
- if (fClipInfo) {
- fRenderer->DirectConnected(fClipInfo->direct_info);
- fRenderer->EnableDirectMode(fClipInfo->enable_direct_mode);
- }
-
- return;
- }
-
- fprintf(stderr, "no renderer found! \n");
-
- // No Renderer, no rendering. Setup a minimal "No Renderer" string drawing
- // context
- SetFont(be_bold_font);
- // SetFontSize(16);
-}
-
-
-void
-BGLView::AllAttached()
-{
- BView::AllAttached();
-}
-
-
-void
-BGLView::DetachedFromWindow()
-{
- BView::DetachedFromWindow();
-}
-
-
-void
-BGLView::AllDetached()
-{
- BView::AllDetached();
-}
-
-
-void
-BGLView::FrameResized(float width, float height)
-{
- fBounds = Bounds();
- for (BView* v = this; v; v = v->Parent())
- v->ConvertToParent(&fBounds);
-
- if (fRenderer) {
- //_LockDraw();
- fRenderer->FrameResized(width, height);
- //_UnlockDraw();
- }
-
- BView::FrameResized(width, height);
-}
-
-
-status_t
-BGLView::Perform(perform_code d, void* arg)
-{
- return BView::Perform(d, arg);
-}
-
-
-status_t
-BGLView::Archive(BMessage* data, bool deep) const
-{
- return BView::Archive(data, deep);
-}
-
-
-void
-BGLView::MessageReceived(BMessage* msg)
-{
- BView::MessageReceived(msg);
-}
-
-
-void
-BGLView::SetResizingMode(uint32 mode)
-{
- BView::SetResizingMode(mode);
-}
-
-
-void
-BGLView::GetPreferredSize(float* _width, float* _height)
-{
- if (_width)
- *_width = 0;
- if (_height)
- *_height = 0;
-}
-
-
-void
-BGLView::Show()
-{
- BView::Show();
-}
-
-
-void
-BGLView::Hide()
-{
- BView::Hide();
-}
-
-
-BHandler*
-BGLView::ResolveSpecifier(BMessage* msg, int32 index, BMessage* specifier,
- int32 form, const char* property)
-{
- return BView::ResolveSpecifier(msg, index, specifier, form, property);
-}
-
-
-status_t
-BGLView::GetSupportedSuites(BMessage* data)
-{
- return BView::GetSupportedSuites(data);
-}
-
-
-void
-BGLView::DirectConnected(direct_buffer_info* info)
-{
- printf("BGLView::DirectConnected\n");
- if (fClipInfo == NULL) {
- fClipInfo = new (std::nothrow) glview_direct_info();
- if (fClipInfo == NULL)
- return;
- }
-
- direct_buffer_info* localInfo = fClipInfo->direct_info;
-
- _LockDraw();
- switch (info->buffer_state & B_DIRECT_MODE_MASK) {
- case B_DIRECT_START:
- fClipInfo->direct_connected = true;
- memcpy(localInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE);
- break;
-
- case B_DIRECT_MODIFY:
- memcpy(localInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE);
- break;
-
- case B_DIRECT_STOP:
- fClipInfo->direct_connected = false;
- break;
- }
-
- if (fRenderer)
- _CallDirectConnected();
-
- _UnlockDraw();
-}
-
-
-void
-BGLView::EnableDirectMode(bool enabled)
-{
- printf("BGLView::EnableDirectMode: %d\n", (int)enabled);
- if (fRenderer)
- fRenderer->EnableDirectMode(enabled);
- if (fClipInfo == NULL) {
- fClipInfo = new (std::nothrow) glview_direct_info();
- if (fClipInfo == NULL)
- return;
- }
-
- fClipInfo->enable_direct_mode = enabled;
-}
-
-
-void
-BGLView::_LockDraw()
-{
- if (!fClipInfo || !fClipInfo->enable_direct_mode)
- return;
-
- fDrawLock.Lock();
-}
-
-
-void
-BGLView::_UnlockDraw()
-{
- if (!fClipInfo || !fClipInfo->enable_direct_mode)
- return;
-
- fDrawLock.Unlock();
-}
-
-
-void
-BGLView::_CallDirectConnected()
-{
- if (!fClipInfo || !fClipInfo->direct_connected) {
- fRenderer->DirectConnected(NULL);
- return;
- }
-
- direct_buffer_info* localInfo = fClipInfo->direct_info;
- direct_buffer_info* info = (direct_buffer_info*)malloc(
- DIRECT_BUFFER_INFO_AREA_SIZE);
- if (info == NULL)
- return;
-
- memcpy(info, localInfo, DIRECT_BUFFER_INFO_AREA_SIZE);
-
- // Collect the rects into a BRegion, then clip to the view's bounds
- BRegion region;
- for (uint32 c = 0; c < localInfo->clip_list_count; c++)
- region.Include(localInfo->clip_list[c]);
- BRegion boundsRegion = fBounds.OffsetByCopy(localInfo->window_bounds.left,
- localInfo->window_bounds.top);
- info->window_bounds = boundsRegion.RectAtInt(0);
- // window_bounds are now view bounds
- region.IntersectWith(&boundsRegion);
-
- info->clip_list_count = region.CountRects();
- info->clip_bounds = region.FrameInt();
-
- for (uint32 c = 0; c < info->clip_list_count; c++)
- info->clip_list[c] = region.RectAtInt(c);
- fRenderer->DirectConnected(info);
- free(info);
-}
-
-
-//---- virtual reserved methods ----------
-
-
-void BGLView::_ReservedGLView1() {}
-void BGLView::_ReservedGLView2() {}
-void BGLView::_ReservedGLView3() {}
-void BGLView::_ReservedGLView4() {}
-void BGLView::_ReservedGLView5() {}
-void BGLView::_ReservedGLView6() {}
-void BGLView::_ReservedGLView7() {}
-void BGLView::_ReservedGLView8() {}
-
-
-// #pragma mark -
-
-
-// BeOS compatibility: contrary to others BView's contructors,
-// BGLView one wants a non-const name argument.
-BGLView::BGLView(BRect rect, char* name, ulong resizingMode, ulong mode,
- ulong options)
- :
- BView(rect, name, B_FOLLOW_ALL_SIDES, mode | B_WILL_DRAW | B_FRAME_EVENTS),
- fGc(NULL),
- fOptions(options),
- fDitherCount(0),
- fDrawLock("BGLView draw lock"),
- fDisplayLock("BGLView display lock"),
- fClipInfo(NULL),
- fRenderer(NULL),
- fDitherMap(NULL)
-{
- fRenderer = GLRendererRoster::Roster()->GetRenderer(this, options);
-}
-
-
-#if 0
-// TODO: implement BGLScreen class...
-
-
-BGLScreen::BGLScreen(char* name, ulong screenMode, ulong options,
- status_t* error, bool debug)
- :
- BWindowScreen(name, screenMode, error, debug)
-{
-}
-
-
-BGLScreen::~BGLScreen()
-{
-}
-
-
-void
-BGLScreen::LockGL()
-{
-}
-
-
-void
-BGLScreen::UnlockGL()
-{
-}
-
-
-void
-BGLScreen::SwapBuffers()
-{
-}
-
-
-void
-BGLScreen::ErrorCallback(unsigned long errorCode)
-{
- // Mesa's GLenum is not ulong but uint!
- char msg[32];
- sprintf(msg, "GL: Error code $%04lx.", errorCode);
- // debugger(msg);
- fprintf(stderr, "%s\n", msg);
- return;
-}
-
-
-void
-BGLScreen::ScreenConnected(bool enabled)
-{
-}
-
-
-void
-BGLScreen::FrameResized(float width, float height)
-{
- return BWindowScreen::FrameResized(width, height);
-}
-
-
-status_t
-BGLScreen::Perform(perform_code d, void* arg)
-{
- return BWindowScreen::Perform(d, arg);
-}
-
-
-status_t
-BGLScreen::Archive(BMessage* data, bool deep) const
-{
- return BWindowScreen::Archive(data, deep);
-}
-
-
-void
-BGLScreen::MessageReceived(BMessage* msg)
-{
- BWindowScreen::MessageReceived(msg);
-}
-
-
-void
-BGLScreen::Show()
-{
- BWindowScreen::Show();
-}
-
-
-void
-BGLScreen::Hide()
-{
- BWindowScreen::Hide();
-}
-
-
-BHandler*
-BGLScreen::ResolveSpecifier(BMessage* msg, int32 index, BMessage* specifier,
- int32 form, const char* property)
-{
- return BWindowScreen::ResolveSpecifier(msg, index, specifier,
- form, property);
-}
-
-
-status_t
-BGLScreen::GetSupportedSuites(BMessage* data)
-{
- return BWindowScreen::GetSupportedSuites(data);
-}
-
-
-//---- virtual reserved methods ----------
-
-void BGLScreen::_ReservedGLScreen1() {}
-void BGLScreen::_ReservedGLScreen2() {}
-void BGLScreen::_ReservedGLScreen3() {}
-void BGLScreen::_ReservedGLScreen4() {}
-void BGLScreen::_ReservedGLScreen5() {}
-void BGLScreen::_ReservedGLScreen6() {}
-void BGLScreen::_ReservedGLScreen7() {}
-void BGLScreen::_ReservedGLScreen8() {}
-#endif
-
-
-const char* color_space_name(color_space space)
-{
-#define C2N(a) case a: return #a
-
- switch (space) {
- C2N(B_RGB24);
- C2N(B_RGB32);
- C2N(B_RGBA32);
- C2N(B_RGB32_BIG);
- C2N(B_RGBA32_BIG);
- C2N(B_GRAY8);
- C2N(B_GRAY1);
- C2N(B_RGB16);
- C2N(B_RGB15);
- C2N(B_RGBA15);
- C2N(B_CMAP8);
- default:
- return "Unknown!";
- };
-
-#undef C2N
-};
-
-
-glview_direct_info::glview_direct_info()
-{
- // TODO: See direct_window_data() in app_server's ServerWindow.cpp
- direct_info = (direct_buffer_info*)calloc(1, DIRECT_BUFFER_INFO_AREA_SIZE);
- direct_connected = false;
- enable_direct_mode = false;
-}
-
-
-glview_direct_info::~glview_direct_info()
-{
- free(direct_info);
-}
-
diff --git a/src/hgl/meson.build b/src/hgl/meson.build
deleted file mode 100644
index eeecbe03b9a..00000000000
--- a/src/hgl/meson.build
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright © 2017 Intel Corporation
-
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to deal
-# in the Software without restriction, including without limitation the rights
-# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-# copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-# SOFTWARE.
-
-libgl = shared_library(
- 'GL',
- files(
- 'GLView.cpp', 'GLRenderer.cpp', 'GLRendererRoster.cpp',
- ),
- link_args : [ld_args_bsymbolic, ld_args_gc_sections],
- include_directories : [
- inc_src, inc_mapi, inc_mesa, inc_include, inc_glapi, inc_haikugl,
- include_directories('/system/develop/headers/private')
- ],
- link_with : [libglapi_static, libglapi],
- dependencies : cpp.find_library('be'),
- version : '1.0.0',
- install : true,
-)
-
-# TODO: We need some tests here
diff --git a/src/meson.build b/src/meson.build
index ddfa4aeec48..ebfcf94858f 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -112,9 +112,6 @@ endif
if with_gallium or with_gbm
subdir('loader')
endif
-if with_platform_haiku
- subdir('hgl')
-endif
if with_gbm
subdir('gbm')
else