Install necessary shader files (#1373299)

This commit is contained in:
Yaakov Selkowitz 2021-02-19 00:23:08 -05:00
parent c95ecd2bd1
commit 30fa49f5fd
2 changed files with 216 additions and 1 deletions

View File

@ -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;

View File

@ -4,7 +4,7 @@
Summary: Mesa demos
Name: mesa-demos
Version: 9.0.0
Release: 1%{?dist}
Release: 2%{?dist}
License: MIT
URL: http://www.mesa3d.org
Source0: https://archive.mesa3d.org/demos/%{name}-%{version}.tar.xz
@ -13,6 +13,8 @@ Source2: mesad-git-snapshot.sh
# Patch pointblast/spriteblast/dinoshade out for legal reasons
# (not in public domain)
Patch0: mesa-demos-8.5.0-legal.patch
# Install glsl demos data
Patch1: mesa-demos-system-data.patch
# Fix xdriinfo not working with libglvnd
Patch2: xdriinfo-1.0.4-glvnd.patch
BuildRequires: meson
@ -58,6 +60,7 @@ The egl-utils package provides the eglinfo and es2_info utilities.
%prep
%setup -q -n %{name}-%{version} -b1
%patch0 -p1 -b .legal
%patch1 -p1 -b .systemdata
pushd ../%{xdriinfo}
%patch2 -p1
popd
@ -118,6 +121,9 @@ install -m 0755 %{_vpath_builddir}/src/egl/opengles2/es2_info %{buildroot}%{_bin
%{_bindir}/es2_info
%changelog
* Tue Apr 25 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 9.0.0-2
- Install all necessary shader files (#1373299)
* Mon Mar 27 2023 Erico Nunes <ernunes@redhat.com> - 9.0.0-1
- Update to 9.0.0
- Enable vulkan demos