Skip to content

Commit 5bab102

Browse files
committed
add raymedia
1 parent 65cf0a8 commit 5bab102

File tree

17 files changed

+2502
-14
lines changed

17 files changed

+2502
-14
lines changed

builds_raylib_dev.sh

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ sudo apt-get install -y gcc-mingw-w64-i686-posix
1616
sudo apt-get install -y gcc-mingw-w64-i686-win32
1717
sudo apt-get install -y build-essential libc6-dev-i386
1818
sudo apt-get install -y libgl1-mesa-dev:i386
19+
sudo apt-get install -y libavcodec-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev
20+
sudo apt-get install -y libavcodec-dev:386 libavformat-dev:386 libavutil-dev:386 libswresample-dev:386 libswscale-dev:386
21+
22+
1923
#sudo apt install -y emscripten
2024
;;
2125
* )
@@ -34,6 +38,12 @@ mkdir libs/x86_64-linux
3438
mkdir libs/x86_32-linux
3539
mkdir libs/x86_64-win64
3640
mkdir libs/i386-win32
41+
42+
mkdir libs/x86_64-linux/raymedia
43+
mkdir libs/x86_32-linux/raymedia
44+
mkdir libs/x86_64-win64/raymedia
45+
mkdir libs/i386-win32/raymedia
46+
3747
#mkdir libs/wasm32-wasi
3848

3949
echo -e "\e[92m \e[1m"
@@ -66,6 +76,10 @@ echo "copy raygizmo"
6676

6777
cp headers/extras/ray-gizmo/raygizmo.h raylib_tmp/src/raygizmo.h
6878
cp headers/extras/ray-gizmo/raygizmo.c raylib_tmp/src/raygizmo.c
79+
80+
cp headers/extras/ray-media/rmedia.h raylib_tmp/src/rmedia.h
81+
cp headers/extras/ray-media/rmedia.c raylib_tmp/src/rmedia.c
82+
6983
cp headers/Makefile raylib_tmp/src/Makefile
7084

7185
#echo "Download physac "
@@ -80,21 +94,29 @@ echo "Build x86_64_LINUX dynlib"
8094
echo "#define RAYGUI_IMPLEMENTATION" > raygui.c && echo "#include <extras/raygui.h>" >> raygui.c
8195
#echo "#define PHYSAC_IMPLEMENTATION" > physac.c && echo "#include <extras/physac.h>" >> physac.c
8296
echo -e "\e[0m"
83-
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED RAYLIB_MODULE_RAYGUI=TRUE RAYLIB_MODULE_RAYGIZMO=TRUE
97+
98+
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED RAYLIB_MODULE_RAYGUI=TRUE RAYLIB_MODULE_RAYGIZMO=TRUE #RAYLIB_MODULE_RAYMEDIA=TRUE
8499

85100
echo -e "\e[92m \e[1m"
86101
echo " copy libs x86_64-linux ..."
102+
87103
rm -f ../../libs/x86_64-linux/*
104+
rm -f ../../libs/x86_64-linux/raymedia/*
88105
cp libraylib.so.5.5.0 ../../libs/x86_64-linux/libraylib.so
89106
echo -e "\e[0m"
90107

108+
rm libraylib.so.5.5.0
109+
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED RAYLIB_MODULE_RAYGUI=TRUE RAYLIB_MODULE_RAYMEDIA=TRUE
110+
111+
cp libraylib.so.5.5.0 ../../libs/x86_64-linux/raymedia/libraylib.so.550
112+
91113
echo -e "\e[34m \e[1m"
92114
echo "Build x86_64_LINUX Statics ---------------------------------------------"
93115
echo -e "\e[0m"
94116
make clean
95117
echo "#define RAYGUI_IMPLEMENTATION" > raygui.c && echo "#include <extras/raygui.h>" >> raygui.c
96118
#echo "#define PHYSAC_IMPLEMENTATION" > physac.c && echo "#include <extras/physac.h>" >> physac.c
97-
make PLATFORM=PLATFORM_DESKTOP RAYLIB_MODULE_RAYGUI=TRUE RAYLIB_MODULE_RAYGIZMO=TRUE
119+
make PLATFORM=PLATFORM_DESKTOP RAYLIB_MODULE_RAYGUI=TRUE RAYLIB_MODULE_RAYGIZMO=TRUE
98120
cp libraylib.a ../../libs/x86_64-linux/libraylib.a
99121

100122

@@ -106,7 +128,11 @@ echo "#define RAYGUI_IMPLEMENTATION" > raygui.c && echo "#include <extras/raygui
106128
#echo "#define PHYSAC_IMPLEMENTATION" > physac.c && echo "#include <extras/physac.h>" >> physac.c
107129
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED RAYLIB_MODULE_RAYGUI=TRUE RAYLIB_MODULE_RAYGIZMO=TRUE LDFLAG=-m32
108130
rm -f ../../libs/x86_32-linux/*
131+
rm -f ../../libs/x86_64-linux/raymedia/*
109132
cp libraylib.so.5.5.0 ../../libs/x86_32-linux/libraylib.so
133+
rm libraylib.so.5.5.0
134+
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED RAYLIB_MODULE_RAYGUI=TRUE RAYLIB_MODULE_RAYGIZMO=TRUE LDFLAG=-m32
135+
cp libraylib.so.5.5.0 ../../libs/x86_32-linux/raymedia/libraylib.so.550
110136

111137
echo -e "\e[34m \e[1m"
112138
echo "Build x86_32_LINUX Statics"
@@ -143,9 +169,19 @@ echo "#define RAYGUI_IMPLEMENTATION" > raygui.c && echo "#include <extras/raygui
143169
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED RAYLIB_MODULE_RAYGUI=TRUE RAYLIB_MODULE_RAYGIZMO=TRUE OS=Windows_NT CC=x86_64-w64-mingw32-gcc AR=x86_64-w64-mingw32-ar
144170

145171
rm -f ../../libs/x86_64-win64/*
172+
rm -f ../../libs/x86_64-win64/raymedia/*
173+
146174
cp libraylibdll.a ../../libs/x86_64-win64
147175
cp raylib.dll ../../libs/x86_64-win64
148176

177+
rm libraylibdll.a
178+
rm raylib.dll
179+
180+
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED RAYLIB_MODULE_RAYGUI=TRUE RAYLIB_MODULE_RAYMEDIA=TRUE OS=Windows_NT CC=x86_64-w64-mingw32-gcc AR=x86_64-w64-mingw32-ar
181+
182+
cp libraylibdll.a ../../libs/x86_64-win64/raymedia
183+
cp raylib.dll ../../libs/x86_64-win64/raymedia
184+
149185
#---------------------------------------------------------------------------------------------------------
150186

151187
make clean
@@ -161,9 +197,15 @@ echo "#define RAYGUI_IMPLEMENTATION" > raygui.c && echo "#include <extras/raygui
161197
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED RAYLIB_MODULE_RAYGUI=TRUE RAYLIB_MODULE_RAYGIZMO=TRUE OS=Windows_NT CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar
162198

163199
rm -f ../../libs/i386-win32/*
200+
rm -f ../../libs/i386-win32/raymedia/*
164201
cp libraylibdll.a ../../libs/i386-win32
165202
cp raylib.dll ../../libs/i386-win32
166203

204+
rm libraylibdll.a
205+
rm raylib.dll
206+
make PLATFORM=PLATFORM_DESKTOP RAYLIB_LIBTYPE=SHARED RAYLIB_MODULE_RAYGUI=TRUE RAYLIB_MODULE_RAYMEDIA=TRUE OS=Windows_NT CC=i686-w64-mingw32-gcc AR=i686-w64-mingw32-ar
207+
208+
167209
cd ../../
168210
rm -rvf raylib_tmp
169211

examples/shaders/shaders_shadowmap/shaders_shadowmap.lpr

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ procedure DrawScene(cube, robot: TModel);
125125
cube := LoadModelFromMesh(GenMeshCube(1.0, 1.0, 1.0));
126126
cube.materials[0].shader := shadowShader;
127127
robot := LoadModel(PChar(GetApplicationDirectory + 'resources/models/robot.glb'));
128+
128129
for i := 0 to robot.materialCount-1 do
129130
robot.materials[i].shader := shadowShader;
130131

headers/Makefile

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ RAYLIB_MODULE_AUDIO ?= TRUE
103103
RAYLIB_MODULE_MODELS ?= TRUE
104104
RAYLIB_MODULE_RAYGUI ?= FALSE
105105
RAYLIB_MODULE_RAYGIZMO ?= FALSE
106+
RAYLIB_MODULE_RAYMEDIA ?= FALSE
106107

107108
# NOTE: Additional libraries have been moved to their own repos:
108109
# raygui: https://github.com/raysan5/raygui
@@ -111,6 +112,9 @@ RAYLIB_MODULE_RAYGUI_PATH ?= $(RAYLIB_SRC_PATH)/../../raygui/src
111112
# raygizmo: https://github.com/cloudofoz/raylib-gizmo/tree/main
112113
RAYLIB_MODULE_RAYGIZMO_PATH ?= $(RAYLIB_SRC_PATH)
113114

115+
RAYLIB_MODULE_RAYMEDIA_PATH ?= $(RAYLIB_SRC_PATH)
116+
117+
114118
# Use external GLFW library instead of rglfw module
115119
USE_EXTERNAL_GLFW ?= FALSE
116120

@@ -125,6 +129,10 @@ SDL_INCLUDE_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/include
125129
SDL_LIBRARY_PATH ?= $(RAYLIB_SRC_PATH)/external/SDL2/lib
126130
SDL_LIBRARIES ?= -lSDL2 -lSDL2main
127131

132+
# FFMPEG FOR VIDEO
133+
FFMPEG_LIBRARIES ?= -lraylib -lavcodec -lavformat -lavutil -lswresample -lswscale
134+
135+
128136
# Determine if the file has root access (only required to install raylib)
129137
# "whoami" prints the name of the user that calls him (so, if it is the root user, "whoami" prints "root")
130138
ROOT = $(shell whoami)
@@ -563,8 +571,11 @@ ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_GLFW)
563571
endif
564572
endif
565573
ifeq ($(PLATFORM_OS),LINUX)
566-
LDLIBS = -lGL -lc -lm -lpthread -ldl -lrt
567-
ifeq ($(GLFW_LINUX_ENABLE_X11),TRUE)
574+
LDLIBS = -lGL -lc -lm -lpthread -ldl -lrt
575+
ifeq ($(RAYLIB_MODULE_RAYMEDIA),TRUE)
576+
LDLIBS += $(FFMPEG_LIBRARIES)
577+
endif
578+
ifeq ($(GLFW_LINUX_ENABLE_X11),TRUE)
568579
LDLIBS += -lX11
569580
endif
570581
# TODO: On ARM 32bit arch, miniaudio requires atomics library
@@ -602,7 +613,7 @@ ifeq ($(TARGET_PLATFORM),PLATFORM_DESKTOP_RGFW)
602613
ifeq ($(PLATFORM_OS),LINUX)
603614
# Libraries for Debian GNU/Linux desktop compipling
604615
# NOTE: Required packages: libegl1-mesa-dev
605-
LDLIBS = -lGL -lX11 -lXrandr -lXinerama -lXi -lXcursor -lm -lpthread -ldl -lrt
616+
LDLIBS = -lGL -lX11 -lXrandr -lXinerama -lXi -lXcursor -lm -lpthread -ldl -lrt
606617

607618
# Explicit link to libc
608619
ifeq ($(RAYLIB_LIBTYPE),SHARED)
@@ -655,6 +666,10 @@ ifeq ($(RAYLIB_MODULE_RAYGIZMO),TRUE)
655666
OBJS += raygizmo.o
656667
endif
657668

669+
ifeq ($(RAYLIB_MODULE_RAYMEDIA),TRUE)
670+
OBJS += rmedia.o
671+
endif
672+
658673
ifeq ($(TARGET_PLATFORM),PLATFORM_ANDROID)
659674
OBJS += android_native_app_glue.o
660675
endif
@@ -791,6 +806,19 @@ else
791806
@echo "#include \"$(RAYLIB_MODULE_RAYGIZMO_PATH)/raygizmo.h\"" >> raygizmo.c
792807
endif
793808

809+
# Compile raymedia module
810+
# NOTE: raumedia header should be distributed with raylib.h
811+
rmedia.o : rmedia.c
812+
$(CC) -c $< $(CFLAGS) $(INCLUDE_PATHS)
813+
rmedia.c:
814+
ifeq ($(PLATFORM_SHELL), cmd)
815+
@echo #define RAYMEDIA_IMPLEMENTATION > rmedia.c
816+
@echo #include "$(RAYLIB_MODULE_RAYMEDIA_PATH)/rmedia.h" >> rmedia.c
817+
else
818+
@echo "#define RAYMEDIA_IMPLEMENTATION" > rmedia.c
819+
@echo "#include \"$(RAYLIB_MODULE_RAYGIZMO_PATH)/rmedia.h\"" >> rmedia.c
820+
endif
821+
794822
# Compile gizmo module
795823
# raygizmo.o : raygizmo.c raygizmo.h raylib.h rlgl.h raymath.h
796824
# $(CC) -c $< $(CFLAGS) $(INCLUDE_PATHS)

0 commit comments

Comments
 (0)