Examples have been moved to https://github.com/ChrisDill/Raylib-cs-Examples.
- Examples were getting large and to make it easier for submodules and commit history I decided to seperate the two. Preparing to merge changes from dev branch. Made sense to do this change directly first.
This commit is contained in:
parent
a20d154f96
commit
38ae234d34
287 changed files with 0 additions and 102759 deletions
|
|
@ -1,477 +0,0 @@
|
||||||
#**************************************************************************************************
|
|
||||||
#
|
|
||||||
# raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5
|
|
||||||
#
|
|
||||||
# Copyright (c) 2013-2018 Ramon Santamaria (@raysan5)
|
|
||||||
#
|
|
||||||
# This software is provided "as-is", without any express or implied warranty. In no event
|
|
||||||
# will the authors be held liable for any damages arising from the use of this software.
|
|
||||||
#
|
|
||||||
# Permission is granted to anyone to use this software for any purpose, including commercial
|
|
||||||
# applications, and to alter it and redistribute it freely, subject to the following restrictions:
|
|
||||||
#
|
|
||||||
# 1. The origin of this software must not be misrepresented; you must not claim that you
|
|
||||||
# wrote the original software. If you use this software in a product, an acknowledgment
|
|
||||||
# in the product documentation would be appreciated but is not required.
|
|
||||||
#
|
|
||||||
# 2. Altered source versions must be plainly marked as such, and must not be misrepresented
|
|
||||||
# as being the original software.
|
|
||||||
#
|
|
||||||
# 3. This notice may not be removed or altered from any source distribution.
|
|
||||||
#
|
|
||||||
#**************************************************************************************************
|
|
||||||
|
|
||||||
.PHONY: all clean
|
|
||||||
|
|
||||||
# Define required raylib variables
|
|
||||||
PROJECT_NAME ?= raylib_examples
|
|
||||||
RAYLIB_VERSION ?= 2.0.0
|
|
||||||
RAYLIB_API_VERSION ?= 1
|
|
||||||
RAYLIB_PATH ?= ..
|
|
||||||
|
|
||||||
# Define default options
|
|
||||||
|
|
||||||
# One of PLATFORM_DESKTOP, PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB
|
|
||||||
PLATFORM ?= PLATFORM_DESKTOP
|
|
||||||
|
|
||||||
# Locations of your newly installed library and associated headers. See ../src/Makefile
|
|
||||||
# On Linux, if you have installed raylib but cannot compile the examples, check that
|
|
||||||
# the *_INSTALL_PATH values here are the same as those in src/Makefile or point to known locations.
|
|
||||||
# To enable system-wide compile-time and runtime linking to libraylib.so, run ../src/$ sudo make install RAYLIB_LIBTYPE_SHARED.
|
|
||||||
# To enable compile-time linking to a special version of libraylib.so, change these variables here.
|
|
||||||
# To enable runtime linking to a special version of libraylib.so, see EXAMPLE_RUNTIME_PATH below.
|
|
||||||
# If there is a libraylib in both EXAMPLE_RUNTIME_PATH and RAYLIB_INSTALL_PATH, at runtime,
|
|
||||||
# the library at EXAMPLE_RUNTIME_PATH, if present, will take precedence over the one at RAYLIB_INSTALL_PATH.
|
|
||||||
# RAYLIB_INSTALL_PATH should be the desired full path to libraylib. No relative paths.
|
|
||||||
DESTDIR ?= /usr/local
|
|
||||||
RAYLIB_INSTALL_PATH ?= $(DESTDIR)/lib
|
|
||||||
# RAYLIB_H_INSTALL_PATH locates the installed raylib header and associated source files.
|
|
||||||
RAYLIB_H_INSTALL_PATH ?= $(DESTDIR)/include
|
|
||||||
|
|
||||||
# Library type used for raylib: STATIC (.a) or SHARED (.so/.dll)
|
|
||||||
RAYLIB_LIBTYPE ?= STATIC
|
|
||||||
|
|
||||||
# Build mode for project: DEBUG or RELEASE
|
|
||||||
RAYLIB_BUILD_MODE ?= RELEASE
|
|
||||||
|
|
||||||
# Use external GLFW library instead of rglfw module
|
|
||||||
# TODO: Review usage on Linux. Target version of choice. Switch on -lglfw or -lglfw3
|
|
||||||
USE_EXTERNAL_GLFW ?= FALSE
|
|
||||||
|
|
||||||
# Use Wayland display server protocol on Linux desktop
|
|
||||||
# by default it uses X11 windowing system
|
|
||||||
USE_WAYLAND_DISPLAY ?= FALSE
|
|
||||||
|
|
||||||
# NOTE: On PLATFORM_WEB OpenAL Soft backend is used by default (check raylib/src/Makefile)
|
|
||||||
|
|
||||||
# Determine PLATFORM_OS in case PLATFORM_DESKTOP selected
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|
||||||
# No uname.exe on MinGW!, but OS=Windows_NT on Windows!
|
|
||||||
# ifeq ($(UNAME),Msys) -> Windows
|
|
||||||
ifeq ($(OS),Windows_NT)
|
|
||||||
PLATFORM_OS=WINDOWS
|
|
||||||
else
|
|
||||||
UNAMEOS=$(shell uname)
|
|
||||||
ifeq ($(UNAMEOS),Linux)
|
|
||||||
PLATFORM_OS=LINUX
|
|
||||||
endif
|
|
||||||
ifeq ($(UNAMEOS),FreeBSD)
|
|
||||||
PLATFORM_OS=BSD
|
|
||||||
endif
|
|
||||||
ifeq ($(UNAMEOS),OpenBSD)
|
|
||||||
PLATFORM_OS=BSD
|
|
||||||
endif
|
|
||||||
ifeq ($(UNAMEOS),NetBSD)
|
|
||||||
PLATFORM_OS=BSD
|
|
||||||
endif
|
|
||||||
ifeq ($(UNAMEOS),DragonFly)
|
|
||||||
PLATFORM_OS=BSD
|
|
||||||
endif
|
|
||||||
ifeq ($(UNAMEOS),Darwin)
|
|
||||||
PLATFORM_OS=OSX
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
|
||||||
UNAMEOS=$(shell uname)
|
|
||||||
ifeq ($(UNAMEOS),Linux)
|
|
||||||
PLATFORM_OS=LINUX
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# RAYLIB_PATH adjustment for different platforms.
|
|
||||||
# If using GNU make, we can get the full path to the top of the tree. Windows? BSD?
|
|
||||||
# Required for ldconfig or other tools that do not perform path expansion.
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|
||||||
ifeq ($(PLATFORM_OS),LINUX)
|
|
||||||
RAYLIB_PREFIX ?= ..
|
|
||||||
RAYLIB_PATH = $(realpath $(RAYLIB_PREFIX))
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
# Default path for raylib on Raspberry Pi, if installed in different path, update it!
|
|
||||||
# This is not currently used by src/Makefile. Not sure of its origin or usage. Refer to wiki.
|
|
||||||
# TODO: update install: target in src/Makefile for RPI, consider relation to LINUX.
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
|
||||||
RAYLIB_PATH ?= /home/pi/raylib
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_WEB)
|
|
||||||
# Emscripten required variables
|
|
||||||
EMSDK_PATH = C:/emsdk
|
|
||||||
EMSCRIPTEN_VERSION = 1.38.8
|
|
||||||
CLANG_VERSION = e1.38.8_64bit
|
|
||||||
PYTHON_VERSION = 2.7.13.1_64bit\python-2.7.13.amd64
|
|
||||||
NODE_VERSION = 8.9.1_64bit
|
|
||||||
export PATH = $(EMSDK_PATH);$(EMSDK_PATH)\clang\$(CLANG_VERSION);$(EMSDK_PATH)\node\$(NODE_VERSION)\bin;$(EMSDK_PATH)\python\$(PYTHON_VERSION);$(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION);C:\raylib\MinGW\bin:$$(PATH)
|
|
||||||
EMSCRIPTEN = $(EMSDK_PATH)\emscripten\$(EMSCRIPTEN_VERSION)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Define raylib release directory for compiled library.
|
|
||||||
# RAYLIB_RELEASE_PATH points to provided binaries or your freshly built version.
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|
||||||
ifeq ($(PLATFORM_OS),WINDOWS)
|
|
||||||
RAYLIB_RELEASE_PATH = $(RAYLIB_PATH)/release/libs/win32/mingw32
|
|
||||||
endif
|
|
||||||
ifeq ($(PLATFORM_OS),LINUX)
|
|
||||||
RAYLIB_RELEASE_PATH = $(RAYLIB_PATH)/release/libs/linux
|
|
||||||
endif
|
|
||||||
ifeq ($(PLATFORM_OS),OSX)
|
|
||||||
RAYLIB_RELEASE_PATH = $(RAYLIB_PATH)/release/libs/osx
|
|
||||||
endif
|
|
||||||
ifeq ($(PLATFORM_OS),BSD)
|
|
||||||
RAYLIB_RELEASE_PATH = $(RAYLIB_PATH)/release/libs/bsd
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
|
||||||
RAYLIB_RELEASE_PATH = $(RAYLIB_PATH)/release/libs/rpi
|
|
||||||
endif
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_WEB)
|
|
||||||
RAYLIB_RELEASE_PATH = $(RAYLIB_PATH)/release/libs/html5
|
|
||||||
endif
|
|
||||||
|
|
||||||
# EXAMPLE_RUNTIME_PATH embeds a custom runtime location of libraylib.so or other desired libraries
|
|
||||||
# into each example binary compiled with RAYLIB_LIBTYPE=SHARED. It defaults to RAYLIB_RELEASE_PATH
|
|
||||||
# so that these examples link at runtime with your version of libraylib.so in ../release/libs/linux
|
|
||||||
# without formal installation from ../src/Makefile. It aids portability and is useful if you have
|
|
||||||
# multiple versions of raylib, have raylib installed to a non-standard location, or want to
|
|
||||||
# bundle libraylib.so with your game. Change it to your liking.
|
|
||||||
# Note: If, at runtime, there is a libraylib.so at both EXAMPLE_RUNTIME_PATH and RAYLIB_INSTALL_PATH,
|
|
||||||
# The library at EXAMPLE_RUNTIME_PATH, if present, will take precedence over RAYLIB_INSTALL_PATH,
|
|
||||||
# Implemented for LINUX below with CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH)
|
|
||||||
# To see the result, run readelf -d core/core_basic_window; looking at the RPATH or RUNPATH attribute.
|
|
||||||
# To see which libraries a built example is linking to, ldd core/core_basic_window;
|
|
||||||
# Look for libraylib.so.1 => $(RAYLIB_INSTALL_PATH)/libraylib.so.1 or similar listing.
|
|
||||||
EXAMPLE_RUNTIME_PATH ?= $(RAYLIB_RELEASE_PATH)
|
|
||||||
|
|
||||||
# Define default C compiler: gcc
|
|
||||||
# NOTE: define g++ compiler if using C++
|
|
||||||
# CC = gcc
|
|
||||||
CC = csc
|
|
||||||
# CC = C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Visual Studio 2017\Visual Studio Tools\Developer Command Prompt for VS 2017.bat
|
|
||||||
|
|
||||||
# csc /t:exe /out:core_basic_window.exe /reference:C:\Users\Chris\Documents\projects\Raylib-cs\Bindings\bin\Debug\Bindings.DLL core_basic_window.cs
|
|
||||||
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|
||||||
# ifeq ($(PLATFORM_OS),OSX)
|
|
||||||
# # OSX default compiler
|
|
||||||
# CC = clang
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM_OS),BSD)
|
|
||||||
# # FreeBSD, OpenBSD, NetBSD, DragonFly default compiler
|
|
||||||
# CC = clang
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_RPI)
|
|
||||||
# ifeq ($(USE_RPI_CROSS_COMPILER),TRUE)
|
|
||||||
# # Define RPI cross-compiler
|
|
||||||
# #CC = armv6j-hardfloat-linux-gnueabi-gcc
|
|
||||||
# CC = $(RPI_TOOLCHAIN)/bin/arm-linux-gnueabihf-gcc
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_WEB)
|
|
||||||
# # WARNING: To compile to HTML5, code must be redesigned to use emscripten.h and emscripten_set_main_loop()
|
|
||||||
# # HTML5 emscripten compiler
|
|
||||||
# CC = emcc
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# Define default make program: Mingw32-make
|
|
||||||
MAKE = mingw32-make
|
|
||||||
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|
||||||
ifeq ($(PLATFORM_OS),LINUX)
|
|
||||||
MAKE = make
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Define compiler flags:
|
|
||||||
# -O1 defines optimization level
|
|
||||||
# -g enable debugging
|
|
||||||
# -s strip unnecessary data from build
|
|
||||||
# -Wall turns on most, but not all, compiler warnings
|
|
||||||
# -std=c99 defines C language mode (standard C from 1999 revision)
|
|
||||||
# -std=gnu99 defines C language mode (GNU C from 1999 revision)
|
|
||||||
# -Wno-missing-braces ignore invalid warning (GCC bug 53119)
|
|
||||||
# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec
|
|
||||||
# CFLAGS += -O1 -s -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces
|
|
||||||
CFLAGS += /reference:C:\Users\Chris\Documents\projects\Raylib-cs\Bindings\bin\Debug\Bindings.DLL
|
|
||||||
|
|
||||||
# Additional flags for compiler (if desired)
|
|
||||||
#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|
||||||
# ifeq ($(PLATFORM_OS),WINDOWS)
|
|
||||||
# # resource file contains windows executable icon and properties
|
|
||||||
# # -Wl,--subsystem,windows hides the console window
|
|
||||||
# CFLAGS += $(RAYLIB_PATH)/raylib.rc.o -Wl,--subsystem,windows
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM_OS),LINUX)
|
|
||||||
# ifeq ($(RAYLIB_BUILD_MODE),DEBUG)
|
|
||||||
# CFLAGS += -g
|
|
||||||
# #CC = clang
|
|
||||||
# endif
|
|
||||||
# ifeq ($(RAYLIB_LIBTYPE),STATIC)
|
|
||||||
# CFLAGS += -D_DEFAULT_SOURCE
|
|
||||||
# endif
|
|
||||||
# ifeq ($(RAYLIB_LIBTYPE),SHARED)
|
|
||||||
# # Explicitly enable runtime link to libraylib.so
|
|
||||||
# CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH)
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_RPI)
|
|
||||||
# CFLAGS += -std=gnu99
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_WEB)
|
|
||||||
# # -Os # size optimization
|
|
||||||
# # -O2 # optimization level 2, if used, also set --memory-init-file 0
|
|
||||||
# # --memory-init-file 0 # to avoid an external memory initialization code file (.mem)
|
|
||||||
# # -s ALLOW_MEMORY_GROWTH=1 # to allow memory resizing
|
|
||||||
# # -s TOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB)
|
|
||||||
# # -s USE_PTHREADS=1 # multithreading support
|
|
||||||
# # -s WASM=1 # support Web Assembly (https://github.com/kripken/emscripten/wiki/WebAssembly)
|
|
||||||
# # -s EMTERPRETIFY=1 # enable emscripten code interpreter (very slow)
|
|
||||||
# # -s EMTERPRETIFY_ASYNC=1 # support synchronous loops by emterpreter
|
|
||||||
# # --profiling # include information for code profiling
|
|
||||||
# # --preload-file resources # specify a resources folder for data compilation
|
|
||||||
# CFLAGS += -Os -s USE_GLFW=3 -s ASSERTIONS=1 -s WASM=1 -s EMTERPRETIFY=1 -s EMTERPRETIFY_ASYNC=1
|
|
||||||
|
|
||||||
# # NOTE: Simple raylib examples are compiled to be interpreter by emterpreter, that way,
|
|
||||||
# # we can compile same code for ALL platforms with no change required, but, working on bigger
|
|
||||||
# # projects, code needs to be refactored to avoid a blocking while() loop, moving Update and Draw
|
|
||||||
# # logic to a self contained function: UpdateDrawFrame(), check core_basic_window_web.c for reference.
|
|
||||||
|
|
||||||
# # Define a custom shell .html and output extension
|
|
||||||
# CFLAGS += --shell-file $(RAYLIB_PATH)\templates\web_shell\shell.html
|
|
||||||
# EXT = .html
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# Define include paths for required headers.
|
|
||||||
# Precedence: immediately local, raysan5 provided sources
|
|
||||||
# NOTE: Several external required libraries (stb and others)
|
|
||||||
# INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/release/include -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external
|
|
||||||
|
|
||||||
# Define additional directories containing required header files
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_RPI)
|
|
||||||
# # RPI required libraries
|
|
||||||
# INCLUDE_PATHS += -I/opt/vc/include
|
|
||||||
# INCLUDE_PATHS += -I/opt/vc/include/interface/vmcs_host/linux
|
|
||||||
# INCLUDE_PATHS += -I/opt/vc/include/interface/vcos/pthreads
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|
||||||
# ifeq ($(PLATFORM_OS),BSD)
|
|
||||||
# # Consider -L$(RAYLIB_H_INSTALL_PATH)
|
|
||||||
# INCLUDE_PATHS += -I/usr/local/include
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM_OS),LINUX)
|
|
||||||
# # Reset everything.
|
|
||||||
# # Precedence: immediately local, installed version, raysan5 provided libs -I$(RAYLIB_H_INSTALL_PATH) -I$(RAYLIB_PATH)/release/include
|
|
||||||
# INCLUDE_PATHS = -I$(RAYLIB_H_INSTALL_PATH) -isystem. -isystem$(RAYLIB_PATH)/src -isystem$(RAYLIB_PATH)/release/include -isystem$(RAYLIB_PATH)/src/external
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# Define library paths containing required libs.
|
|
||||||
# Precedence: immediately local, then raysan5 provided libs
|
|
||||||
# LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src
|
|
||||||
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|
||||||
# ifeq ($(PLATFORM_OS),BSD)
|
|
||||||
# # Consider -L$(RAYLIB_INSTALL_PATH)
|
|
||||||
# LDFLAGS += -L. -Lsrc -L/usr/local/lib
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM_OS),LINUX)
|
|
||||||
# # Reset everything.
|
|
||||||
# # Precedence: immediately local, installed version, raysan5 provided libs
|
|
||||||
# LDFLAGS = -L. -L$(RAYLIB_INSTALL_PATH) -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_RPI)
|
|
||||||
# LDFLAGS += -L/opt/vc/lib
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# Define any libraries required on linking
|
|
||||||
# if you want to link libraries (libname.so or libname.a), use the -lname
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|
||||||
# ifeq ($(PLATFORM_OS),WINDOWS)
|
|
||||||
# # Libraries for Windows desktop compilation
|
|
||||||
# LDLIBS = -lraylib -lopengl32 -lgdi32
|
|
||||||
# # Required for physac examples
|
|
||||||
# LDLIBS += -static -lpthread
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM_OS),LINUX)
|
|
||||||
# # Libraries for Debian GNU/Linux desktop compiling
|
|
||||||
# # NOTE: Required packages: libegl1-mesa-dev
|
|
||||||
# LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt
|
|
||||||
# # On X11 requires also below libraries
|
|
||||||
# LDLIBS += -lX11
|
|
||||||
# # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them
|
|
||||||
# #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor
|
|
||||||
# # On Wayland windowing system, additional libraries requires
|
|
||||||
# ifeq ($(USE_WAYLAND_DISPLAY),TRUE)
|
|
||||||
# LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon
|
|
||||||
# endif
|
|
||||||
# # Explicit link to libc
|
|
||||||
# ifeq ($(RAYLIB_LIBTYPE),SHARED)
|
|
||||||
# LDLIBS += -lc
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM_OS),OSX)
|
|
||||||
# # Libraries for OSX 10.9 desktop compiling
|
|
||||||
# # NOTE: Required packages: libopenal-dev libegl1-mesa-dev
|
|
||||||
# LDLIBS = -lraylib -framework OpenGL -framework OpenAL -framework Cocoa
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM_OS),BSD)
|
|
||||||
# # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling
|
|
||||||
# # NOTE: Required packages: mesa-libs
|
|
||||||
# LDLIBS = -lraylib -lGL -lpthread -lm
|
|
||||||
# # On XWindow requires also below libraries
|
|
||||||
# LDLIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor
|
|
||||||
# endif
|
|
||||||
# ifeq ($(USE_EXTERNAL_GLFW),TRUE)
|
|
||||||
# # NOTE: It could require additional packages installed: libglfw3-dev
|
|
||||||
# LDLIBS += -lglfw
|
|
||||||
# endif
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_RPI)
|
|
||||||
# # Libraries for Raspberry Pi compiling
|
|
||||||
# # NOTE: Required packages: libasound2-dev (ALSA)
|
|
||||||
# LDLIBS = -lraylib -lbrcmGLESv2 -lbrcmEGL -lpthread -lrt -lm -lbcm_host -ldl
|
|
||||||
# endif
|
|
||||||
# ifeq ($(PLATFORM),PLATFORM_WEB)
|
|
||||||
# # Libraries for web (HTML5) compiling
|
|
||||||
# LDLIBS = $(RAYLIB_RELEASE_PATH)/libraylib.bc
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# Define all object files required
|
|
||||||
EXAMPLES = \
|
|
||||||
core/core_basic_window \
|
|
||||||
core/core_input_keys \
|
|
||||||
core/core_input_mouse \
|
|
||||||
core/core_mouse_wheel \
|
|
||||||
core/core_input_gamepad \
|
|
||||||
core/core_random_values \
|
|
||||||
core/core_color_select \
|
|
||||||
core/core_drop_files \
|
|
||||||
core/core_storage_values \
|
|
||||||
core/core_gestures_detection \
|
|
||||||
core/core_3d_mode \
|
|
||||||
core/core_3d_picking \
|
|
||||||
core/core_3d_camera_free \
|
|
||||||
core/core_3d_camera_first_person \
|
|
||||||
core/core_2d_camera \
|
|
||||||
core/core_world_screen \
|
|
||||||
core/core_vr_simulator \
|
|
||||||
shapes/shapes_logo_raylib \
|
|
||||||
shapes/shapes_basic_shapes \
|
|
||||||
shapes/shapes_colors_palette \
|
|
||||||
shapes/shapes_logo_raylib_anim \
|
|
||||||
shapes/shapes_lines_bezier \
|
|
||||||
textures/textures_logo_raylib \
|
|
||||||
textures/textures_image_loading \
|
|
||||||
textures/textures_rectangle \
|
|
||||||
textures/textures_srcrec_dstrec \
|
|
||||||
textures/textures_to_image \
|
|
||||||
textures/textures_raw_data \
|
|
||||||
textures/textures_particles_blending \
|
|
||||||
textures/textures_image_processing \
|
|
||||||
textures/textures_image_drawing \
|
|
||||||
textures/textures_image_generation \
|
|
||||||
textures/textures_image_text \
|
|
||||||
text/text_sprite_fonts \
|
|
||||||
text/text_bmfont_ttf \
|
|
||||||
text/text_raylib_fonts \
|
|
||||||
text/text_format_text \
|
|
||||||
text/text_writing_anim \
|
|
||||||
text/text_ttf_loading \
|
|
||||||
text/text_bmfont_unordered \
|
|
||||||
text/text_input_box \
|
|
||||||
text/text_font_sdf \
|
|
||||||
models/models_geometric_shapes \
|
|
||||||
models/models_box_collisions \
|
|
||||||
models/models_billboard \
|
|
||||||
models/models_obj_loading \
|
|
||||||
models/models_heightmap \
|
|
||||||
models/models_cubicmap \
|
|
||||||
models/models_mesh_picking \
|
|
||||||
models/models_mesh_generation \
|
|
||||||
models/models_material_pbr \
|
|
||||||
models/models_skybox \
|
|
||||||
models/models_yaw_pitch_roll \
|
|
||||||
shaders/shaders_model_shader \
|
|
||||||
shaders/shaders_shapes_textures \
|
|
||||||
shaders/shaders_custom_uniform \
|
|
||||||
shaders/shaders_postprocessing \
|
|
||||||
audio/audio_sound_loading \
|
|
||||||
audio/audio_music_stream \
|
|
||||||
audio/audio_module_playing \
|
|
||||||
audio/audio_raw_stream \
|
|
||||||
physac/physics_demo \
|
|
||||||
physac/physics_friction \
|
|
||||||
physac/physics_movement \
|
|
||||||
physac/physics_restitution \
|
|
||||||
physac/physics_shatter \
|
|
||||||
|
|
||||||
|
|
||||||
CURRENT_MAKEFILE = $(lastword $(MAKEFILE_LIST))
|
|
||||||
|
|
||||||
# Default target entry
|
|
||||||
all: $(EXAMPLES)
|
|
||||||
|
|
||||||
# Generic compilation pattern
|
|
||||||
# NOTE: Examples must be ready for Android compilation!
|
|
||||||
%: %.cs
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_ANDROID)
|
|
||||||
$(MAKE) -f Makefile.Android PROJECT_NAME=$@ PROJECT_SOURCE_FILES=$<
|
|
||||||
else
|
|
||||||
$(CC) /t:exe /out:$@$(EXT).exe $(CFLAGS) $<
|
|
||||||
# $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
|
|
||||||
# $(CC) /t:exe /out:$@$(EXT).exe $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM)
|
|
||||||
endif
|
|
||||||
|
|
||||||
# fix dylib install path name for each executable (MAC)
|
|
||||||
fix_dylib:
|
|
||||||
ifeq ($(PLATFORM_OS),OSX)
|
|
||||||
find . -type f -perm +ugo+x -print0 | xargs -t -0 -R 1 -I file install_name_tool -change libglfw.3.0.dylib ../external/glfw3/lib/osx/libglfw.3.0.dylib file
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Clean everything
|
|
||||||
clean:
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|
||||||
ifeq ($(PLATFORM_OS),WINDOWS)
|
|
||||||
del *.o *.exe /s
|
|
||||||
endif
|
|
||||||
ifeq ($(PLATFORM_OS),LINUX)
|
|
||||||
find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv
|
|
||||||
endif
|
|
||||||
ifeq ($(PLATFORM_OS),OSX)
|
|
||||||
find . -type f -perm +ugo+x -delete
|
|
||||||
rm -f *.o
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
|
||||||
find . -type f -executable -delete
|
|
||||||
rm -fv *.o
|
|
||||||
endif
|
|
||||||
ifeq ($(PLATFORM),PLATFORM_WEB)
|
|
||||||
del *.o *.html *.js
|
|
||||||
endif
|
|
||||||
@echo Cleaning done
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
using System;
|
|
||||||
using System.IO;
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
using System.Reflection;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
|
|
||||||
namespace Examples
|
|
||||||
{
|
|
||||||
public class Test
|
|
||||||
{
|
|
||||||
public static string GetExampleDirectory()
|
|
||||||
{
|
|
||||||
var dir = Environment.CurrentDirectory;
|
|
||||||
dir = dir.Substring(0, dir.LastIndexOf("Raylib-cs") + 9) + "\\Examples\\";
|
|
||||||
return dir;
|
|
||||||
}
|
|
||||||
|
|
||||||
// menu for testing examples
|
|
||||||
// specify name relative to example directory
|
|
||||||
public static void Run(string[] args)
|
|
||||||
{
|
|
||||||
Console.WriteLine("Welcome to raylib-cs!");
|
|
||||||
Console.WriteLine("---------------------");
|
|
||||||
|
|
||||||
var examples = GetExampleDirectory();
|
|
||||||
Console.WriteLine("Looking for examples relative to " + examples);
|
|
||||||
Console.WriteLine("For example, core/core_basic_window");
|
|
||||||
|
|
||||||
while (true)
|
|
||||||
{
|
|
||||||
Console.Write("Choose a example: ");
|
|
||||||
|
|
||||||
// select example
|
|
||||||
var filePath = Console.ReadLine();
|
|
||||||
var name = Path.GetFileNameWithoutExtension(filePath);
|
|
||||||
var dir = examples + filePath + ".cs";
|
|
||||||
|
|
||||||
// run example if it exists
|
|
||||||
if (File.Exists(dir))
|
|
||||||
{
|
|
||||||
ChangeDirectory(Path.GetDirectoryName(dir));
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Type.GetType(name)?.GetMethod("Main")?.Invoke(null, args);
|
|
||||||
}
|
|
||||||
catch(TargetInvocationException e)
|
|
||||||
{
|
|
||||||
Console.WriteLine(e.InnerException.Message);
|
|
||||||
Console.WriteLine(e.InnerException.StackTrace);
|
|
||||||
}
|
|
||||||
Console.WriteLine();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Console.WriteLine(filePath + " is not a valid example");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,146 +0,0 @@
|
||||||
using Raylib;
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
public partial class audio_module_playing
|
|
||||||
{
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [audio] example - Module playing (streaming)
|
|
||||||
*
|
|
||||||
* NOTE: This example requires OpenAL Soft library installed
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.5 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2016 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
public const int MAX_CIRCLES = 64;
|
|
||||||
|
|
||||||
struct CircleWave
|
|
||||||
{
|
|
||||||
public Vector2 position;
|
|
||||||
public float radius;
|
|
||||||
public float alpha;
|
|
||||||
public float speed;
|
|
||||||
public Color color;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int Main()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
SetConfigFlags(ConfigFlag.FLAG_MSAA_4X_HINT); // NOTE: Try to enable MSAA 4X
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [audio] example - module playing (streaming)");
|
|
||||||
|
|
||||||
InitAudioDevice(); // Initialize audio device
|
|
||||||
|
|
||||||
Color[] colors = new Color[14] { ORANGE, RED, GOLD, LIME, BLUE, VIOLET, BROWN, LIGHTGRAY, PINK,
|
|
||||||
YELLOW, GREEN, SKYBLUE, PURPLE, BEIGE };
|
|
||||||
|
|
||||||
// Creates ome circles for visual effect
|
|
||||||
CircleWave[] circles = new CircleWave[MAX_CIRCLES];
|
|
||||||
|
|
||||||
for (int i = MAX_CIRCLES - 1; i >= 0; i--)
|
|
||||||
{
|
|
||||||
circles[i].alpha = 0.0f;
|
|
||||||
circles[i].radius = GetRandomValue(10, 40);
|
|
||||||
circles[i].position.x = GetRandomValue((int)circles[i].radius, screenWidth - (int)circles[i].radius);
|
|
||||||
circles[i].position.y = GetRandomValue((int)circles[i].radius, screenHeight - (int)circles[i].radius);
|
|
||||||
circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f;
|
|
||||||
circles[i].color = colors[GetRandomValue(0, 13)];
|
|
||||||
}
|
|
||||||
|
|
||||||
var xm = LoadMusicStream("resources/mini1111.xm");
|
|
||||||
|
|
||||||
PlayMusicStream(xm);
|
|
||||||
|
|
||||||
float timePlayed = 0.0f;
|
|
||||||
bool pause = false;
|
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
UpdateMusicStream(xm); // Update music buffer with new stream data
|
|
||||||
|
|
||||||
// Restart music playing (stop and play)
|
|
||||||
if (IsKeyPressed(KeyboardKey.KEY_SPACE))
|
|
||||||
{
|
|
||||||
StopMusicStream(xm);
|
|
||||||
PlayMusicStream(xm);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Pause/Resume music playing
|
|
||||||
if (IsKeyPressed(KeyboardKey.KEY_P))
|
|
||||||
{
|
|
||||||
pause = !pause;
|
|
||||||
|
|
||||||
if (pause) PauseMusicStream(xm);
|
|
||||||
else ResumeMusicStream(xm);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get timePlayed scaled to bar dimensions
|
|
||||||
timePlayed = GetMusicTimePlayed(xm)/GetMusicTimeLength(xm)*(screenWidth - 40);
|
|
||||||
|
|
||||||
// Color circles animation
|
|
||||||
for (int i = MAX_CIRCLES - 1; (i >= 0) && !pause; i--)
|
|
||||||
{
|
|
||||||
circles[i].alpha += circles[i].speed;
|
|
||||||
circles[i].radius += circles[i].speed*10.0f;
|
|
||||||
|
|
||||||
if (circles[i].alpha > 1.0f) circles[i].speed *= -1;
|
|
||||||
|
|
||||||
if (circles[i].alpha <= 0.0f)
|
|
||||||
{
|
|
||||||
circles[i].alpha = 0.0f;
|
|
||||||
circles[i].radius = GetRandomValue(10, 40);
|
|
||||||
circles[i].position.x = GetRandomValue((int)circles[i].radius, screenWidth - (int)circles[i].radius);
|
|
||||||
circles[i].position.y = GetRandomValue((int)circles[i].radius, screenHeight - (int)circles[i].radius);
|
|
||||||
circles[i].color = colors[GetRandomValue(0, 13)];
|
|
||||||
circles[i].speed = (float)GetRandomValue(1, 100)/20000.0f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
for (int i = MAX_CIRCLES - 1; i >= 0; i--)
|
|
||||||
{
|
|
||||||
DrawCircleV(circles[i].position, circles[i].radius, Fade(circles[i].color, circles[i].alpha));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Draw time bar
|
|
||||||
DrawRectangle(20, screenHeight - 20 - 12, screenWidth - 40, 12, LIGHTGRAY);
|
|
||||||
DrawRectangle(20, screenHeight - 20 - 12, (int)timePlayed, 12, MAROON);
|
|
||||||
DrawRectangleLines(20, screenHeight - 20 - 12, screenWidth - 40, 12, GRAY);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
UnloadMusicStream(xm); // Unload music stream buffers from RAM
|
|
||||||
|
|
||||||
CloseAudioDevice(); // Close audio device (music streaming is automatically stopped)
|
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 47 KiB |
|
|
@ -1,98 +0,0 @@
|
||||||
using Raylib;
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
public partial class audio_music_stream
|
|
||||||
{
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [audio] example - IntPtr playing (streaming)
|
|
||||||
*
|
|
||||||
* NOTE: This example requires OpenAL Soft library installed
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.3 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
public static int Main()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [audio] example - music playing (streaming)");
|
|
||||||
|
|
||||||
InitAudioDevice(); // Initialize audio device
|
|
||||||
|
|
||||||
var music = LoadMusicStream("resources/guitar_noodling.ogg");
|
|
||||||
|
|
||||||
PlayMusicStream(music);
|
|
||||||
|
|
||||||
float timePlayed = 0.0f;
|
|
||||||
bool pause = false;
|
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
UpdateMusicStream(music); // Update music buffer with new stream data
|
|
||||||
|
|
||||||
// Restart music playing (stop and play)
|
|
||||||
if (IsKeyPressed(KeyboardKey.KEY_SPACE))
|
|
||||||
{
|
|
||||||
StopMusicStream(music);
|
|
||||||
PlayMusicStream(music);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Pause/Resume music playing
|
|
||||||
if (IsKeyPressed(KeyboardKey.KEY_P))
|
|
||||||
{
|
|
||||||
pause = !pause;
|
|
||||||
|
|
||||||
if (pause) PauseMusicStream(music);
|
|
||||||
else ResumeMusicStream(music);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get timePlayed scaled to bar dimensions (400 pixels)
|
|
||||||
timePlayed = GetMusicTimePlayed(music)/GetMusicTimeLength(music)*400;
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
DrawText("MUSIC SHOULD BE PLAYING!", 255, 150, 20, LIGHTGRAY);
|
|
||||||
|
|
||||||
DrawRectangle(200, 200, 400, 12, LIGHTGRAY);
|
|
||||||
DrawRectangle(200, 200, (int)timePlayed, 12, MAROON);
|
|
||||||
DrawRectangleLines(200, 200, 400, 12, GRAY);
|
|
||||||
|
|
||||||
DrawText("PRESS SPACE TO RESTART MUSIC", 215, 250, 20, LIGHTGRAY);
|
|
||||||
DrawText("PRESS P TO PAUSE/RESUME MUSIC", 208, 280, 20, LIGHTGRAY);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
UnloadMusicStream(music); // Unload music stream buffers from RAM
|
|
||||||
|
|
||||||
CloseAudioDevice(); // Close audio device (music streaming is automatically stopped)
|
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB |
|
|
@ -1,118 +0,0 @@
|
||||||
using System;
|
|
||||||
using Raylib;
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
public partial class audio_raw_stream
|
|
||||||
{
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [audio] example - Raw audio streaming
|
|
||||||
*
|
|
||||||
* NOTE: This example requires OpenAL Soft library installed
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.6 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public const int MAX_SAMPLES = 22050;
|
|
||||||
public const int MAX_SAMPLES_PER_UPDATE = 4096;
|
|
||||||
|
|
||||||
public static int Main()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [audio] example - raw audio streaming");
|
|
||||||
|
|
||||||
InitAudioDevice(); // Initialize audio device
|
|
||||||
|
|
||||||
// Init raw audio stream (sample rate: 22050, sample size: 16bit-short, channels: 1-mono)
|
|
||||||
AudioStream stream = InitAudioStream(22050, 16, 1);
|
|
||||||
|
|
||||||
// Generate samples data from sine wave
|
|
||||||
short[] data = new short[MAX_SAMPLES];
|
|
||||||
//short *data = (short *)malloc(sizeof(short)*MAX_SAMPLES);
|
|
||||||
|
|
||||||
// TODO: Review data generation, it seems data is discontinued for loop,
|
|
||||||
// for that reason, there is a clip everytime audio stream is looped...
|
|
||||||
for (int i = 0; i < MAX_SAMPLES; i++)
|
|
||||||
{
|
|
||||||
data[i] = (short)(Math.Sin(((2*Math.PI*(float)i)/2)*DEG2RAD)*32000);
|
|
||||||
}
|
|
||||||
|
|
||||||
PlayAudioStream(stream); // Start processing stream buffer (no data loaded currently)
|
|
||||||
|
|
||||||
int totalSamples = MAX_SAMPLES;
|
|
||||||
int samplesLeft = totalSamples;
|
|
||||||
|
|
||||||
Vector2 position = new Vector2( 0, 0 );
|
|
||||||
|
|
||||||
SetTargetFPS(30); // Set our game to run at 30 frames-per-second
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Refill audio stream if required
|
|
||||||
// NOTE: Every update we check if stream data has been already consumed and we update
|
|
||||||
// buffer with new data from the generated samples, we upload data at a rate (MAX_SAMPLES_PER_UPDATE),
|
|
||||||
// but notice that at some point we update < MAX_SAMPLES_PER_UPDATE data...
|
|
||||||
if (IsAudioBufferProcessed(stream))
|
|
||||||
{
|
|
||||||
int numSamples = 0;
|
|
||||||
if (samplesLeft >= MAX_SAMPLES_PER_UPDATE) numSamples = MAX_SAMPLES_PER_UPDATE;
|
|
||||||
else numSamples = samplesLeft;
|
|
||||||
|
|
||||||
// UpdateAudioStream(stream, data + (totalSamples - samplesLeft), numSamples);
|
|
||||||
|
|
||||||
samplesLeft -= numSamples;
|
|
||||||
|
|
||||||
// Reset samples feeding (loop audio)
|
|
||||||
if (samplesLeft <= 0) samplesLeft = totalSamples;
|
|
||||||
}
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
DrawText("SINE WAVE SHOULD BE PLAYING!", 240, 140, 20, LIGHTGRAY);
|
|
||||||
|
|
||||||
// NOTE: Draw a part of the sine wave (only screen width, proportional values)
|
|
||||||
for (int i = 0; i < GetScreenWidth(); i++)
|
|
||||||
{
|
|
||||||
position.x = i;
|
|
||||||
position.y = 250 + 50*data[i]/32000;
|
|
||||||
|
|
||||||
DrawPixelV(position, RED);
|
|
||||||
}
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
CloseAudioStream(stream); // Close raw audio stream and delete buffers from RAM
|
|
||||||
|
|
||||||
CloseAudioDevice(); // Close audio device (music streaming is automatically stopped)
|
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 16 KiB |
|
|
@ -1,72 +0,0 @@
|
||||||
using Raylib;
|
|
||||||
using static Raylib.Raylib;
|
|
||||||
|
|
||||||
public partial class audio_sound_loading
|
|
||||||
{
|
|
||||||
/*******************************************************************************************
|
|
||||||
*
|
|
||||||
* raylib [audio] example - Sound loading and playing
|
|
||||||
*
|
|
||||||
* NOTE: This example requires OpenAL Soft library installed
|
|
||||||
*
|
|
||||||
* This example has been created using raylib 1.0 (www.raylib.com)
|
|
||||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2014 Ramon Santamaria (@raysan5)
|
|
||||||
*
|
|
||||||
********************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
public static int Main()
|
|
||||||
{
|
|
||||||
// Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
int screenWidth = 800;
|
|
||||||
int screenHeight = 450;
|
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [audio] example - sound loading and playing");
|
|
||||||
|
|
||||||
InitAudioDevice(); // Initialize audio device
|
|
||||||
|
|
||||||
Sound fxWav = LoadSound("resources/sound.wav"); // Load WAV audio file
|
|
||||||
Sound fxOgg = LoadSound("resources/tanatana.ogg"); // Load OGG audio file
|
|
||||||
|
|
||||||
SetTargetFPS(60);
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Main game loop
|
|
||||||
while (!WindowShouldClose()) // Detect window close button or ESC key
|
|
||||||
{
|
|
||||||
// Update
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
if (IsKeyPressed(KeyboardKey.KEY_SPACE)) PlaySound(fxWav); // Play WAV sound
|
|
||||||
if (IsKeyPressed(KeyboardKey.KEY_ENTER)) PlaySound(fxOgg); // Play OGG sound
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
// Draw
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
BeginDrawing();
|
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
DrawText("Press SPACE to PLAY the WAV sound!", 200, 180, 20, LIGHTGRAY);
|
|
||||||
|
|
||||||
DrawText("Press ENTER to PLAY the OGG sound!", 200, 220, 20, LIGHTGRAY);
|
|
||||||
|
|
||||||
EndDrawing();
|
|
||||||
//----------------------------------------------------------------------------------
|
|
||||||
}
|
|
||||||
|
|
||||||
// De-Initialization
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
UnloadSound(fxWav); // Unload sound data
|
|
||||||
UnloadSound(fxOgg); // Unload sound data
|
|
||||||
|
|
||||||
CloseAudioDevice(); // Close audio device
|
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
|
||||||
//--------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue