Initial commit
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
# Ignore BPM archives and signatures
|
||||
*.bpm
|
||||
*.bpm.sig
|
||||
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Gitlab repository
|
||||
REPO="mesa/demos"
|
||||
|
||||
# Replace slash with URL encoded representation
|
||||
REPO=$(echo "$REPO" | sed 's|/|%2F|g')
|
||||
|
||||
# Get tag name using Gitlab Rest API
|
||||
TAG_NAME=$(curl -s -L https://gitlab.freedesktop.org/api/v4/projects/"$REPO"/repository/tags | jq -r '.[].name' | sort -V | tail -n1)
|
||||
|
||||
# Trim prefix
|
||||
VERSION=${TAG_NAME//mesa-demos-/}
|
||||
|
||||
echo "$VERSION"
|
||||
@@ -0,0 +1,45 @@
|
||||
name: mesa-demos
|
||||
description: Mesa demos
|
||||
version: 9.0.0
|
||||
revision: 1
|
||||
url: https://mesa3d.org/
|
||||
license: MIT
|
||||
maintainers:
|
||||
- [email protected]
|
||||
architecture: any
|
||||
type: source
|
||||
depends:
|
||||
- freeglut
|
||||
- glibc
|
||||
- glu
|
||||
- libglvnd
|
||||
- libx11
|
||||
- libxext
|
||||
make_depends:
|
||||
- glslang
|
||||
- libdecor
|
||||
- libxkbcommon
|
||||
- mesa
|
||||
- meson
|
||||
- vulkan-headers
|
||||
- vulkan-loader
|
||||
- wayland-protocols
|
||||
downloads:
|
||||
- url: https://mesa.freedesktop.org/archive/demos/mesa-demos-${BPM_PKG_VERSION}.tar.xz
|
||||
extract_to: ${BPM_SOURCE}
|
||||
extract_strip_components: 1
|
||||
checksum: 3046a3d26a7b051af7ebdd257a5f23bfeb160cad6ed952329cdff1e9f1ed496b
|
||||
split_packages:
|
||||
- name: mesa-demos
|
||||
- name: mesa-utils
|
||||
description: Essential Mesa utilities
|
||||
depends:
|
||||
- glibc
|
||||
- libdecor
|
||||
- libdrm
|
||||
- libglvnd
|
||||
- libx11
|
||||
- libxcb
|
||||
- libxkbcommon
|
||||
- vulkan-loader
|
||||
- wayland
|
||||
@@ -0,0 +1,82 @@
|
||||
Disclaimer
|
||||
|
||||
Mesa is a 3-D graphics library with an API which is very similar to
|
||||
that of OpenGL*
|
||||
To the extent that Mesa utilizes the OpenGL command syntax or state
|
||||
machine, it is being used with authorization from Silicon Graphics,
|
||||
Inc.(SGI). However, the author does not possess an OpenGL license
|
||||
from SGI, and makes no claim that Mesa is in any way a compatible
|
||||
replacement for OpenGL or associated with SGI. Those who want a
|
||||
licensed implementation of OpenGL should contact a licensed
|
||||
vendor.
|
||||
|
||||
Please do not refer to the library as MesaGL (for legal
|
||||
reasons). It's just Mesa or The Mesa 3-D graphics
|
||||
library
|
||||
|
||||
* OpenGL is a trademark of Silicon Graphics Incorporated.
|
||||
|
||||
License / Copyright Information
|
||||
|
||||
The Mesa distribution consists of several components. Different copyrights
|
||||
and licenses apply to different components. For example, GLUT is copyrighted
|
||||
by Mark Kilgard, some demo programs are copyrighted by SGI, some of the Mesa
|
||||
device drivers are copyrighted by their authors. See below for a list of
|
||||
Mesa's main components and the license for each.
|
||||
|
||||
The core Mesa library is licensed according to the terms of the MIT license.
|
||||
This allows integration with the XFree86, Xorg and DRI projects.
|
||||
|
||||
The default Mesa license is as follows:
|
||||
|
||||
Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
|
||||
|
||||
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
|
||||
BRIAN PAUL 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.
|
||||
|
||||
Attention, Contributors
|
||||
|
||||
When contributing to the Mesa project you must agree to the licensing terms
|
||||
of the component to which you're contributing.
|
||||
The following section lists the primary components of the Mesa distribution
|
||||
and their respective licenses.
|
||||
|
||||
|
||||
Mesa Component Licenses
|
||||
|
||||
Component Location Primary Author License
|
||||
----------------------------------------------------------------------------
|
||||
Main Mesa code src/mesa/ Brian Paul Mesa (MIT)
|
||||
|
||||
Device drivers src/mesa/drivers/* See drivers See drivers
|
||||
|
||||
Ext headers include/GL/glext.h SGI SGI Free B
|
||||
include/GL/glxext.h
|
||||
|
||||
GLUT src/glut/ Mark Kilgard Mark's copyright
|
||||
|
||||
Mesa GLU library src/glu/mesa/ Brian Paul GNU-LGPL
|
||||
|
||||
SGI GLU library src/glu/sgi/ SGI SGI Free B
|
||||
|
||||
demo programs progs/demos/ various see source files
|
||||
|
||||
X demos progs/xdemos/ Brian Paul see source files
|
||||
|
||||
SGI demos progs/samples/ SGI SGI copyright
|
||||
|
||||
RedBook demos progs/redbook/ SGI SGI copyright
|
||||
@@ -0,0 +1,209 @@
|
||||
diff --git a/src/glsl/bezier.c b/src/glsl/bezier.c
|
||||
index 84e0367..62996fb 100644
|
||||
--- a/src/glsl/bezier.c
|
||||
+++ b/src/glsl/bezier.c
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "glut_wrap.h"
|
||||
#include "shaderutil.h"
|
||||
|
||||
-static const char *filename = "bezier.geom";
|
||||
+static const char *filename = DEMOS_DATA_DIR "bezier.geom";
|
||||
|
||||
static GLuint fragShader;
|
||||
static GLuint vertShader;
|
||||
diff --git a/src/glsl/blinking-teapot.c b/src/glsl/blinking-teapot.c
|
||||
index 62451e9..3420066 100644
|
||||
--- a/src/glsl/blinking-teapot.c
|
||||
+++ b/src/glsl/blinking-teapot.c
|
||||
@@ -63,8 +63,8 @@ init_opengl (void)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
- vshad_id = CompileShaderFile (GL_VERTEX_SHADER, "blinking-teapot.vert");
|
||||
- fshad_id = CompileShaderFile (GL_FRAGMENT_SHADER, "blinking-teapot.frag");
|
||||
+ vshad_id = CompileShaderFile (GL_VERTEX_SHADER, DEMOS_DATA_DIR "blinking-teapot.vert");
|
||||
+ fshad_id = CompileShaderFile (GL_FRAGMENT_SHADER, DEMOS_DATA_DIR "blinking-teapot.frag");
|
||||
prog_id = LinkShaders (vshad_id, fshad_id);
|
||||
|
||||
glUseProgram (prog_id);
|
||||
diff --git a/src/glsl/brick.c b/src/glsl/brick.c
|
||||
index 00d8349..f9f0ec7 100644
|
||||
--- a/src/glsl/brick.c
|
||||
+++ b/src/glsl/brick.c
|
||||
@@ -14,8 +14,8 @@
|
||||
#include "shaderutil.h"
|
||||
|
||||
|
||||
-static char *FragProgFile = "CH06-brick.frag";
|
||||
-static char *VertProgFile = "CH06-brick.vert";
|
||||
+static char *FragProgFile = DEMOS_DATA_DIR "CH06-brick.frag";
|
||||
+static char *VertProgFile = DEMOS_DATA_DIR "CH06-brick.vert";
|
||||
|
||||
/* program/shader objects */
|
||||
static GLuint fragShader;
|
||||
diff --git a/src/glsl/bump.c b/src/glsl/bump.c
|
||||
index 95ad19f..f40cba0 100644
|
||||
--- a/src/glsl/bump.c
|
||||
+++ b/src/glsl/bump.c
|
||||
@@ -15,9 +15,9 @@
|
||||
#include "readtex.h"
|
||||
|
||||
|
||||
-static char *FragProgFile = "CH11-bumpmap.frag";
|
||||
-static char *FragTexProgFile = "CH11-bumpmaptex.frag";
|
||||
-static char *VertProgFile = "CH11-bumpmap.vert";
|
||||
+static char *FragProgFile = DEMOS_DATA_DIR "CH11-bumpmap.frag";
|
||||
+static char *FragTexProgFile = DEMOS_DATA_DIR "CH11-bumpmaptex.frag";
|
||||
+static char *VertProgFile = DEMOS_DATA_DIR "CH11-bumpmap.vert";
|
||||
static char *TextureFile = DEMOS_DATA_DIR "tile.rgb";
|
||||
|
||||
/* program/shader objects */
|
||||
diff --git a/src/glsl/convolutions.c b/src/glsl/convolutions.c
|
||||
index 567b358..4c681dd 100644
|
||||
--- a/src/glsl/convolutions.c
|
||||
+++ b/src/glsl/convolutions.c
|
||||
@@ -340,7 +340,7 @@ static void init(void)
|
||||
|
||||
menuInit();
|
||||
readTexture(textureLocation);
|
||||
- createProgram("convolution.vert", "convolution.frag");
|
||||
+ createProgram(DEMOS_DATA_DIR "convolution.vert", DEMOS_DATA_DIR "convolution.frag");
|
||||
|
||||
glEnable(GL_TEXTURE_2D);
|
||||
glClearColor(1.0, 1.0, 1.0, 1.0);
|
||||
diff --git a/src/glsl/mandelbrot.c b/src/glsl/mandelbrot.c
|
||||
index 18b817c..6bbeffd 100644
|
||||
--- a/src/glsl/mandelbrot.c
|
||||
+++ b/src/glsl/mandelbrot.c
|
||||
@@ -14,8 +14,8 @@
|
||||
#include "shaderutil.h"
|
||||
|
||||
|
||||
-static char *FragProgFile = "CH18-mandel.frag";
|
||||
-static char *VertProgFile = "CH18-mandel.vert";
|
||||
+static char *FragProgFile = DEMOS_DATA_DIR "CH18-mandel.frag";
|
||||
+static char *VertProgFile = DEMOS_DATA_DIR "CH18-mandel.vert";
|
||||
|
||||
/* program/shader objects */
|
||||
static GLuint fragShader;
|
||||
diff --git a/src/glsl/meson.build b/src/glsl/meson.build
|
||||
index db8c613..13564a4 100644
|
||||
--- a/src/glsl/meson.build
|
||||
+++ b/src/glsl/meson.build
|
||||
@@ -83,3 +83,38 @@ executable(
|
||||
],
|
||||
install: true
|
||||
)
|
||||
+
|
||||
+glsl_data = [
|
||||
+ 'bezier.geom',
|
||||
+ 'blinking-teapot.frag',
|
||||
+ 'blinking-teapot.vert',
|
||||
+ 'brick.shtest',
|
||||
+ 'CH06-brick.frag',
|
||||
+ 'CH06-brick.vert',
|
||||
+ 'CH11-bumpmap.frag',
|
||||
+ 'CH11-bumpmaptex.frag',
|
||||
+ 'CH11-bumpmap.vert',
|
||||
+ 'CH11-toyball.frag',
|
||||
+ 'CH11-toyball.vert',
|
||||
+ 'CH18-mandel.frag',
|
||||
+ 'CH18-mandel.vert',
|
||||
+ 'convolution.frag',
|
||||
+ 'convolution.vert',
|
||||
+ 'cubemap.frag',
|
||||
+ 'mandelbrot.shtest',
|
||||
+ 'multitex.frag',
|
||||
+ 'multitex.shtest',
|
||||
+ 'multitex.vert',
|
||||
+ 'reflect.vert',
|
||||
+ 'shadowtex.frag',
|
||||
+ 'simple.vert',
|
||||
+ 'simplex-noise.glsl',
|
||||
+ 'skinning.frag',
|
||||
+ 'skinning.vert',
|
||||
+ 'toyball.shtest',
|
||||
+]
|
||||
+
|
||||
+install_data(
|
||||
+ glsl_data,
|
||||
+ install_dir: get_option('datadir') / 'mesa-demos'
|
||||
+)
|
||||
diff --git a/src/glsl/multitex.c b/src/glsl/multitex.c
|
||||
index 2f9a2fa..b51aba3 100644
|
||||
--- a/src/glsl/multitex.c
|
||||
+++ b/src/glsl/multitex.c
|
||||
@@ -35,8 +35,8 @@
|
||||
|
||||
static const char *Demo = "multitex";
|
||||
|
||||
-static const char *VertFile = "multitex.vert";
|
||||
-static const char *FragFile = "multitex.frag";
|
||||
+static const char *VertFile = DEMOS_DATA_DIR "multitex.vert";
|
||||
+static const char *FragFile = DEMOS_DATA_DIR "multitex.frag";
|
||||
|
||||
static const char *TexFiles[2] =
|
||||
{
|
||||
diff --git a/src/glsl/simplex-noise.c b/src/glsl/simplex-noise.c
|
||||
index a687508..9a2a029 100644
|
||||
--- a/src/glsl/simplex-noise.c
|
||||
+++ b/src/glsl/simplex-noise.c
|
||||
@@ -169,7 +169,7 @@ SpecialKey(int key, int x, int y)
|
||||
static void
|
||||
Init(void)
|
||||
{
|
||||
- const char *filename = "simplex-noise.glsl";
|
||||
+ const char *filename = DEMOS_DATA_DIR "simplex-noise.glsl";
|
||||
char noiseText[10000];
|
||||
FILE *f;
|
||||
int len;
|
||||
diff --git a/src/glsl/skinning.c b/src/glsl/skinning.c
|
||||
index b451d13..0f4e943 100644
|
||||
--- a/src/glsl/skinning.c
|
||||
+++ b/src/glsl/skinning.c
|
||||
@@ -20,8 +20,8 @@
|
||||
#define M_PI 3.1415926535
|
||||
#endif
|
||||
|
||||
-static char *FragProgFile = "skinning.frag";
|
||||
-static char *VertProgFile = "skinning.vert";
|
||||
+static char *FragProgFile = DEMOS_DATA_DIR "skinning.frag";
|
||||
+static char *VertProgFile = DEMOS_DATA_DIR "skinning.vert";
|
||||
|
||||
/* program/shader objects */
|
||||
static GLuint fragShader;
|
||||
diff --git a/src/glsl/texdemo1.c b/src/glsl/texdemo1.c
|
||||
index 861d696..42308d1 100644
|
||||
--- a/src/glsl/texdemo1.c
|
||||
+++ b/src/glsl/texdemo1.c
|
||||
@@ -35,11 +35,11 @@
|
||||
|
||||
static const char *Demo = "texdemo1";
|
||||
|
||||
-static const char *ReflectVertFile = "reflect.vert";
|
||||
-static const char *CubeFragFile = "cubemap.frag";
|
||||
+static const char *ReflectVertFile = DEMOS_DATA_DIR "reflect.vert";
|
||||
+static const char *CubeFragFile = DEMOS_DATA_DIR "cubemap.frag";
|
||||
|
||||
-static const char *SimpleVertFile = "simple.vert";
|
||||
-static const char *SimpleTexFragFile = "shadowtex.frag";
|
||||
+static const char *SimpleVertFile = DEMOS_DATA_DIR "simple.vert";
|
||||
+static const char *SimpleTexFragFile = DEMOS_DATA_DIR "shadowtex.frag";
|
||||
|
||||
static const char *GroundImage = DEMOS_DATA_DIR "tile.rgb";
|
||||
|
||||
diff --git a/src/glsl/toyball.c b/src/glsl/toyball.c
|
||||
index 17aa765..5b1f7d3 100644
|
||||
--- a/src/glsl/toyball.c
|
||||
+++ b/src/glsl/toyball.c
|
||||
@@ -14,8 +14,8 @@
|
||||
#include "shaderutil.h"
|
||||
|
||||
|
||||
-static char *FragProgFile = "CH11-toyball.frag";
|
||||
-static char *VertProgFile = "CH11-toyball.vert";
|
||||
+static char *FragProgFile = DEMOS_DATA_DIR "CH11-toyball.frag";
|
||||
+static char *VertProgFile = DEMOS_DATA_DIR "CH11-toyball.vert";
|
||||
|
||||
/* program/shader objects */
|
||||
static GLuint fragShader;
|
||||
@@ -0,0 +1,60 @@
|
||||
# This is the source.sh script. It is executed by BPM in a temporary directory when compiling a source package
|
||||
# BPM Expects the source code to be extracted into the automatically created 'source' directory which can be accessed using $BPM_SOURCE
|
||||
# BPM Expects the output files to be present in the automatically created 'output' directory which can be accessed using $BPM_OUTPUT
|
||||
|
||||
# The prepare function is executed in the root of the temp directory
|
||||
# This function is used for putting downloaded files to the correct location or applying patches
|
||||
prepare() {
|
||||
cd "$BPM_SOURCE"
|
||||
# Patch from fedora
|
||||
patch -Np1 -i "$BPM_WORKDIR"/mesa-demos-system-data.patch
|
||||
}
|
||||
|
||||
# The build function is executed in the source directory
|
||||
# This function is used to compile the source code
|
||||
build() {
|
||||
meson setup build --prefix=/usr -Dgles1=disabled -Dosmesa=disabled -Dwith-system-data-files=true
|
||||
meson compile -C build
|
||||
}
|
||||
|
||||
_pick() {
|
||||
local p="$1" f d; shift
|
||||
for f; do
|
||||
[ -d "$BPM_WORKDIR"/output_"$p" ] || { echo "Split package $p not found"; exit 1; }
|
||||
d="$BPM_WORKDIR"/output_"$p"/"${f#$BPM_OUTPUT}"
|
||||
mkdir -p "$(dirname "$d")"
|
||||
mv "$f" "$d"
|
||||
rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
|
||||
done
|
||||
}
|
||||
|
||||
# The package function is executed in the source directory
|
||||
# This function is used to move the compiled files into the output directory
|
||||
package_mesa-demos() {
|
||||
meson install -C build --destdir="$BPM_OUTPUT"
|
||||
|
||||
cd "$BPM_OUTPUT"
|
||||
|
||||
# Move mesa utilities into split package
|
||||
_pick mesa-utils usr/bin/eglinfo
|
||||
_pick mesa-utils usr/bin/eglgears_*
|
||||
_pick mesa-utils usr/bin/eglkms
|
||||
_pick mesa-utils usr/bin/egltri_*
|
||||
_pick mesa-utils usr/bin/peglgears
|
||||
_pick mesa-utils usr/bin/xeglgears
|
||||
_pick mesa-utils usr/bin/xeglthreads
|
||||
_pick mesa-utils usr/bin/es2_info
|
||||
_pick mesa-utils usr/bin/es2gears_*
|
||||
_pick mesa-utils usr/bin/es2tri
|
||||
_pick mesa-utils usr/bin/glxinfo
|
||||
_pick mesa-utils usr/bin/glxgears
|
||||
_pick mesa-utils usr/bin/vkgears
|
||||
|
||||
# Install package license
|
||||
install -Dm644 "$BPM_WORKDIR"/LICENSE "$BPM_OUTPUT"/usr/share/licenses/mesa-demos/LICENSE
|
||||
}
|
||||
|
||||
package_mesa-utils() {
|
||||
# Install package license
|
||||
install -Dm644 "$BPM_WORKDIR"/LICENSE "$BPM_OUTPUT"/usr/share/licenses/mesa-utils/LICENSE
|
||||
}
|
||||
Reference in New Issue
Block a user