mirror of
https://github.com/yann64/haikuports.git
synced 2026-05-05 06:28:55 +02:00
mesa: Add Mesa 10.0.1 for x86
* Drop 10.0.0 as it didn't include the OpenGL kit headers and wasn't used yet
This commit is contained in:
@@ -7,9 +7,9 @@ DESCRIPTION="Mesa is an open-source implementation of the OpenGL specification.
|
|||||||
HOMEPAGE="http://www.mesa3d.org/"
|
HOMEPAGE="http://www.mesa3d.org/"
|
||||||
COPYRIGHT="1999-2013 Brian Paul All Rights Reserved."
|
COPYRIGHT="1999-2013 Brian Paul All Rights Reserved."
|
||||||
LICENSE="MIT"
|
LICENSE="MIT"
|
||||||
SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/10.0/MesaLib-10.0.0.tar.bz2"
|
SRC_URI="ftp://ftp.freedesktop.org/pub/mesa/10.0.1/MesaLib-10.0.1.tar.bz2"
|
||||||
CHECKSUM_MD5="f3fe55d9735bea158bbe97ed9a0da819"
|
CHECKSUM_MD5="0a72ca5b36046a658bf6038326ff32ed"
|
||||||
REVISION="2"
|
REVISION="1"
|
||||||
ARCHITECTURES="x86 x86_64"
|
ARCHITECTURES="x86 x86_64"
|
||||||
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
|
if [ $effectiveTargetArchitecture != x86_gcc2 ]; then
|
||||||
# x86_gcc2 is fine as primary target architecture as long as we're building
|
# x86_gcc2 is fine as primary target architecture as long as we're building
|
||||||
@@ -29,6 +29,8 @@ BUILD_REQUIRES="
|
|||||||
haiku${secondaryArchSuffix}_devel >= $haikuVersion
|
haiku${secondaryArchSuffix}_devel >= $haikuVersion
|
||||||
"
|
"
|
||||||
|
|
||||||
|
PATCHES="mesa-10.0.1.patchset"
|
||||||
|
|
||||||
# We're locked to LLVM 3.2 as 3.3 is broken at the moment on Haiku.
|
# We're locked to LLVM 3.2 as 3.3 is broken at the moment on Haiku.
|
||||||
# Mesa should build with any newer LLVM version however.
|
# Mesa should build with any newer LLVM version however.
|
||||||
# As LLVM is only linked into the swpipe renderer (and not libGL)
|
# As LLVM is only linked into the swpipe renderer (and not libGL)
|
||||||
@@ -60,11 +62,6 @@ INSTALL()
|
|||||||
{
|
{
|
||||||
mesaBuildDir=build/haiku-$effectiveTargetArchitecture
|
mesaBuildDir=build/haiku-$effectiveTargetArchitecture
|
||||||
|
|
||||||
mkdir -p $includeDir/GL
|
|
||||||
cp include/GL/gl.h $includeDir/GL/
|
|
||||||
cp include/GL/gl_mangle.h $includeDir/GL/
|
|
||||||
cp include/GL/glext.h $includeDir/GL/
|
|
||||||
|
|
||||||
# libGL.so makes up the core of our OpenGL kit
|
# libGL.so makes up the core of our OpenGL kit
|
||||||
mkdir -p $libDir
|
mkdir -p $libDir
|
||||||
cp $(find $mesaBuildDir -name 'libGL.so') $libDir
|
cp $(find $mesaBuildDir -name 'libGL.so') $libDir
|
||||||
@@ -76,6 +73,21 @@ INSTALL()
|
|||||||
cp $(find $mesaBuildDir -name 'libswpipe.so') \
|
cp $(find $mesaBuildDir -name 'libswpipe.so') \
|
||||||
"$addOnsDir/opengl/Software Pipe"
|
"$addOnsDir/opengl/Software Pipe"
|
||||||
|
|
||||||
|
# OpenGL Kit
|
||||||
|
mkdir -p $includeDir/os/opengl/GL
|
||||||
|
cp ./include/HaikuGL/OpenGLKit.h $includeDir/os/
|
||||||
|
cp ./include/HaikuGL/GLView.h $includeDir/os/opengl/
|
||||||
|
cp ./include/HaikuGL/GLRenderer.h $includeDir/os/opengl/
|
||||||
|
|
||||||
|
# Standard GL headers
|
||||||
|
cp ./include/GL/gl.h $includeDir/os/opengl/GL/
|
||||||
|
cp ./include/GL/gl_mangle.h $includeDir/os/opengl/GL/
|
||||||
|
cp ./include/GL/glext.h $includeDir/os/opengl/GL/
|
||||||
|
|
||||||
|
# Symlink GL in kit to system GL directory
|
||||||
|
cd $includeDir
|
||||||
|
ln -snf os/opengl/GL GL
|
||||||
|
|
||||||
# devel package
|
# devel package
|
||||||
packageEntries devel \
|
packageEntries devel \
|
||||||
$developDir
|
$developDir
|
||||||
354
sys-libs/mesa/patches/mesa-10.0.1.patchset
Normal file
354
sys-libs/mesa/patches/mesa-10.0.1.patchset
Normal file
@@ -0,0 +1,354 @@
|
|||||||
|
From dfe5d4f383c16208d32c498e2c3e92095422d532 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Alexander von Gluck IV <kallisti5@unixzen.com>
|
||||||
|
Date: Sat, 14 Dec 2013 11:46:05 -0600
|
||||||
|
Subject: [PATCH] Haiku: Add in public GL kit headers
|
||||||
|
|
||||||
|
* These make up the base of what C++ GL Haiku
|
||||||
|
applications use for 3D rendering.
|
||||||
|
* Not placed in includes/GL to prevent Haiku headers
|
||||||
|
from getting installed on non-Haiku systems
|
||||||
|
---
|
||||||
|
include/HaikuGL/GLRenderer.h | 76 +++++++++++++++++
|
||||||
|
include/HaikuGL/GLView.h | 193 +++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
include/HaikuGL/OpenGLKit.h | 10 +++
|
||||||
|
include/HaikuGL/README | 28 +++++++
|
||||||
|
4 files changed, 307 insertions(+)
|
||||||
|
create mode 100644 include/HaikuGL/GLRenderer.h
|
||||||
|
create mode 100644 include/HaikuGL/GLView.h
|
||||||
|
create mode 100644 include/HaikuGL/OpenGLKit.h
|
||||||
|
create mode 100644 include/HaikuGL/README
|
||||||
|
|
||||||
|
diff --git a/include/HaikuGL/GLRenderer.h b/include/HaikuGL/GLRenderer.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..7ffcc34
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/include/HaikuGL/GLRenderer.h
|
||||||
|
@@ -0,0 +1,76 @@
|
||||||
|
+/*
|
||||||
|
+ * 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 BGLRenderer
|
||||||
|
+{
|
||||||
|
+ // Private unimplemented copy constructors
|
||||||
|
+ BGLRenderer(const BGLRenderer &);
|
||||||
|
+ BGLRenderer & operator=(const BGLRenderer &);
|
||||||
|
+
|
||||||
|
+public:
|
||||||
|
+ BGLRenderer(BGLView *view, ulong bgl_options,
|
||||||
|
+ BGLDispatcher *dispatcher);
|
||||||
|
+ 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; };
|
||||||
|
+ inline BGLDispatcher* GLDispatcher() { return fDispatcher; };
|
||||||
|
+
|
||||||
|
+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 *);
|
||||||
|
+
|
||||||
|
+ volatile int32 fRefCount; // How much we're still usefull?
|
||||||
|
+ BGLView* fView; // Never forget who is the boss!
|
||||||
|
+ ulong fOptions; // Keep that tune in memory
|
||||||
|
+ BGLDispatcher* fDispatcher;// Our personal GL API call dispatcher
|
||||||
|
+
|
||||||
|
+ GLRendererRoster* fOwningRoster;
|
||||||
|
+ renderer_id fID;
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+extern "C" _EXPORT BGLRenderer* instantiate_gl_renderer(BGLView *view, ulong options, BGLDispatcher *dispatcher);
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+#endif // GLRENDERER_H
|
||||||
|
diff --git a/include/HaikuGL/GLView.h b/include/HaikuGL/GLView.h
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..b848578
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/include/HaikuGL/GLView.h
|
||||||
|
@@ -0,0 +1,193 @@
|
||||||
|
+/*
|
||||||
|
+ * 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
|
||||||
|
+
|
||||||
|
+#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 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
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..f482871
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/include/HaikuGL/OpenGLKit.h
|
||||||
|
@@ -0,0 +1,10 @@
|
||||||
|
+/*
|
||||||
|
+ * 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 longe core parts of mesa
|
||||||
|
diff --git a/include/HaikuGL/README b/include/HaikuGL/README
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..0f8503f
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/include/HaikuGL/README
|
||||||
|
@@ -0,0 +1,28 @@
|
||||||
|
+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/gl_mangle.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.
|
||||||
|
--
|
||||||
|
1.8.3.4
|
||||||
|
|
||||||
Reference in New Issue
Block a user