Merge branch 'master' of https://github.com/raysan5/raylib into dr/mini_al
26
.gitignore
vendored
|
@ -13,9 +13,10 @@ Thumbs.db
|
|||
# *.obj --> Can be confused with 3d model!
|
||||
*.pdb
|
||||
*.aps
|
||||
*.vcproj.*.user
|
||||
*.vcxproj*
|
||||
*.sln
|
||||
*.user
|
||||
# *.vcproj
|
||||
# *.vcxproj*
|
||||
# *.sln
|
||||
*.vspscc
|
||||
*_i.c
|
||||
*.i
|
||||
|
@ -41,11 +42,12 @@ _ReSharper*/
|
|||
[Tt]est[Rr]esult*
|
||||
ipch/
|
||||
*.opensdf
|
||||
*.db
|
||||
*.opendb
|
||||
|
||||
# Ignore compiled binaries
|
||||
*.o
|
||||
*.exe
|
||||
!tools/rREM/rrem.exe
|
||||
|
||||
# Ignore all examples files
|
||||
examples/*
|
||||
|
@ -84,19 +86,8 @@ xcuserdata/
|
|||
DerivedData/
|
||||
|
||||
# Visual Studio project
|
||||
project/vs2015/*.db
|
||||
project/vs2015/*.opendb
|
||||
project/vs2015.UWP/packages
|
||||
project/vs2015.UWP/*.db
|
||||
!project/vs2015/raylib.sln
|
||||
!project/vs2015/raylib/*.vcxproj
|
||||
!project/vs2015/examples/*.vcxproj
|
||||
!project/vs2017/raylib.sln
|
||||
!project/vs2017/raylib/*.vcxproj
|
||||
!project/vs2017/examples/*.vcxproj
|
||||
!project/vs2015.UWP/raylib/*.vcxproj
|
||||
!project/vs2015.UWP/*.sln
|
||||
!project/vs2015.UWP/raylib.App.UWP/*.vcxproj
|
||||
project/VS2015.UWP/packages
|
||||
project/VS2017/packages
|
||||
|
||||
# Web examples
|
||||
docs/examples/web/*.html
|
||||
|
@ -116,6 +107,7 @@ CMakeCache.txt
|
|||
CMakeFiles
|
||||
CMakeScripts
|
||||
Testing
|
||||
TestingIfSymlinkWorks
|
||||
cmake_install.cmake
|
||||
install_manifest.txt
|
||||
compile_commands.json
|
||||
|
|
85
.travis.yml
|
@ -5,7 +5,8 @@ git:
|
|||
depth: 3
|
||||
|
||||
# TODO we could use a 32 bit Docker container for running true 32-bit tests
|
||||
# services: - docker
|
||||
services:
|
||||
- docker
|
||||
|
||||
matrix:
|
||||
include:
|
||||
|
@ -15,39 +16,87 @@ matrix:
|
|||
- os: linux
|
||||
env: ARCH=amd64
|
||||
sudo: required
|
||||
- os: linux
|
||||
env: ARCH=amd64 GLFW=SYSTEM RELEASE=NO
|
||||
sudo: required
|
||||
- os: linux
|
||||
env: USE_WAYLAND=ON ARCH=amd64 RELEASE=NO
|
||||
sudo: required
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libwayland-dev
|
||||
- libxkbcommon-dev
|
||||
- libegl1-mesa-dev
|
||||
- os: osx
|
||||
env: ARCH=universal
|
||||
- os: linux
|
||||
env: ARCH=arm64-android RELEASE=NO
|
||||
sudo: required
|
||||
- os: linux
|
||||
env: ARCH=html5 RELEASE=NO
|
||||
sudo: required
|
||||
|
||||
before_script:
|
||||
|
||||
before_install:
|
||||
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then
|
||||
sudo apt-get install -y gcc-multilib
|
||||
libasound2-dev:$ARCH
|
||||
libxcursor-dev:$ARCH libxinerama-dev:$ARCH mesa-common-dev:$ARCH
|
||||
libx11-dev:$ARCH libxrandr-dev:$ARCH libxi-dev:$ARCH
|
||||
libgl1-mesa-dev:$ARCH libglu1-mesa-dev:$ARCH;
|
||||
export RAYLIB_PACKAGE_SUFFIX="-Linux-$ARCH";
|
||||
if [ "$ARCH" == "i386" ]; then export CFLAGS="-m32"; fi;
|
||||
if [ "$ARCH" == "amd64" ]; then export CFLAGS="-m64"; fi;
|
||||
if [ "$GLFW" == "SYSTEM" ]; then
|
||||
wget 'http://ftp.de.debian.org/debian/pool/main/g/glfw3/libglfw3_3.2.1-1_amd64.deb';
|
||||
wget 'http://ftp.de.debian.org/debian/pool/main/g/glfw3/libglfw3-dev_3.2.1-1_amd64.deb';
|
||||
sudo dpkg -i libglfw3_3.2.1-1_amd64.deb libglfw3-dev_3.2.1-1_amd64.deb;
|
||||
if [[ "$ARCH" == *-android ]]; then
|
||||
export RAYLIB_PACKAGE_SUFFIX="-Android-arm64";
|
||||
wget https://dl.google.com/android/repository/android-ndk-r17-linux-x86_64.zip;
|
||||
unzip -qq android-ndk*.zip;
|
||||
android-ndk*/build/tools/make_standalone_toolchain.py --arch arm64 --api 21 --install-dir /tmp/android-toolchain;
|
||||
export PATH=/tmp/android-toolchain/bin:$PATH;
|
||||
export CMAKE_ARCH_ARGS='-DPLATFORM=Android';
|
||||
export CC=aarch64-linux-android-clang;
|
||||
export CXX=aarch64-linux-android-clang++;
|
||||
elif [ "$ARCH" == "html5" ]; then
|
||||
export RAYLIB_PACKAGE_SUFFIX="-html5";
|
||||
docker run --privileged=true -dit --name emscripten -v $(pwd):/src trzeci/emscripten:sdk-incoming-64bit bash;
|
||||
export CMAKE_ARCH_ARGS='-DPLATFORM=Web -DCMAKE_TOOLCHAIN_FILE=../cmake/emscripten.cmake';
|
||||
export RUNNER='docker exec -it emscripten cmake -E chdir build';
|
||||
else
|
||||
sudo apt-get install -y gcc-multilib
|
||||
libasound2-dev:$ARCH
|
||||
libxcursor-dev:$ARCH libxinerama-dev:$ARCH mesa-common-dev:$ARCH
|
||||
libx11-dev:$ARCH libxrandr-dev:$ARCH libxrandr2:$ARCH libxi-dev:$ARCH
|
||||
libgl1-mesa-dev:$ARCH libglu1-mesa-dev:$ARCH;
|
||||
if [ "$ARCH" == "i386" ]; then
|
||||
export CMAKE_ARCH_ARGS='-DCMAKE_C_FLAGS=-m32 -DCMAKE_SYSTEM_LIBRARY_PATH=/usr/lib/i386-linux-gnu';
|
||||
fi;
|
||||
export RAYLIB_PACKAGE_SUFFIX="-Linux-$ARCH";
|
||||
if [ "$GLFW" == "SYSTEM" ]; then
|
||||
wget 'http://ftp.de.debian.org/debian/pool/main/g/glfw3/libglfw3_3.2.1-1_amd64.deb';
|
||||
wget 'http://ftp.de.debian.org/debian/pool/main/g/glfw3/libglfw3-dev_3.2.1-1_amd64.deb';
|
||||
sudo dpkg -i libglfw3_3.2.1-1_amd64.deb libglfw3-dev_3.2.1-1_amd64.deb;
|
||||
fi;
|
||||
fi;
|
||||
fi
|
||||
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
||||
export RAYLIB_PACKAGE_SUFFIX="-macOS";
|
||||
if [ "$GLFW" == "SYSTEM" ]; then brew update; brew install glfw; fi;
|
||||
fi
|
||||
- "$CC --version"
|
||||
- mkdir build
|
||||
- $RUNNER $CC --version
|
||||
|
||||
script:
|
||||
- mkdir build
|
||||
- cd build
|
||||
- cmake -DMACOS_FATLIB=ON -DSTATIC=ON -DSHARED=ON -DBUILD_EXAMPLES=ON -DBUILD_GAMES=ON -DUSE_EXTERNAL_GLFW=IF_POSSIBLE ..
|
||||
- make VERBOSE=1
|
||||
- make package
|
||||
- if test -n "${USE_WAYLAND}";
|
||||
then wget https://mirrors.kernel.org/ubuntu/pool/universe/e/extra-cmake-modules/extra-cmake-modules_5.38.0a-0ubuntu1_amd64.deb;
|
||||
sudo dpkg -i extra-cmake-modules_5.38.0a-0ubuntu1_amd64.deb;
|
||||
git clone git://anongit.freedesktop.org/wayland/wayland-protocols;
|
||||
pushd wayland-protocols;
|
||||
git checkout 1.12 && ./autogen.sh --prefix=/usr && make && sudo make install;
|
||||
popd;
|
||||
fi
|
||||
- $RUNNER cmake $CMAKE_ARCH_ARGS -DMACOS_FATLIB=ON -DSTATIC=ON -DSHARED=ON -DBUILD_EXAMPLES=ON -DBUILD_GAMES=ON -DUSE_EXTERNAL_GLFW=IF_POSSIBLE -DUSE_WAYLAND=${USE_WAYLAND} ..
|
||||
- $RUNNER make VERBOSE=1
|
||||
- if [ "$RELEASE" != "NO" ]; then $RUNNER make package; fi;
|
||||
- sudo $RUNNER make install
|
||||
- if [[ "$ARCH" != *-android && "$ARCH" != html5 ]]; then
|
||||
pkg-config --static --libs raylib;
|
||||
nm -g release/libraylib.a | grep glfwGetProcAddress || (echo "libraylib.a doesn't contain GLFW symbols! Aborting..." && false);
|
||||
fi
|
||||
|
||||
deploy:
|
||||
provider: releases
|
||||
|
|
98
CHANGELOG
|
@ -3,6 +3,104 @@ changelog
|
|||
|
||||
Current Release: raylib 1.8.0 (Oct 2017)
|
||||
|
||||
-----------------------------------------------
|
||||
Release: raylib 2.0 (June 2017 ?)
|
||||
-----------------------------------------------
|
||||
KEY CHANGES:
|
||||
- Removed external dependencies (GLFW3 and OpenAL)
|
||||
- Complete redesign of audio module to use mini_al audio library
|
||||
- Support AppVeyor and Travis CI (continuous integration) build
|
||||
- Reviewed raymath.h for better consistency and performance (inlining)
|
||||
- Refactor all #define SUPPORT_* into a single config.h
|
||||
- Support TCC compiler
|
||||
|
||||
Detailed changes:
|
||||
[build] REMOVED: GitHub develop branch
|
||||
[build] ADDED: FreeBSD OS support
|
||||
[build] ADDED: Universal Windows Platform (UWP) support
|
||||
[build] ADDED: Wayland Linux desktop support
|
||||
[build] REMOVED: External dependencies GLFW and OpenAL
|
||||
[build] ADDED: AppVeyor CI for automatic Windows builds
|
||||
[build] ADDED: Travis CI for automatic Linux/macOS builds
|
||||
[build] ADDED: rglfw (GLFW3 module) to avoid external dependency
|
||||
[build] ADDED: VS2017 UWP project
|
||||
[build] ADDED: Builder project template
|
||||
[build] REVIEWED: VS2015 and VS2017 projects
|
||||
[build] ADDED: Compiler memory sanitizer for better debug
|
||||
[build] Setup CMake package target and CI auto-deploy tags
|
||||
[build] Support DEBUG library building
|
||||
[core] Unified InitWindow() between platforms
|
||||
[core] Export Android main entry point
|
||||
[core] RENAMED: Begin3dMode() to BeginMode3D()
|
||||
[core] RENAMED: End3dMode() to EndMode3D()
|
||||
[core] RENAMED: Begin2dMode() to BeginMode2D()
|
||||
[core] RENAMED: End2dMode() to EndMode2D()
|
||||
[core] RENAMED: struct Camera to Camera3D
|
||||
[core] RENAMED: struct SpriteFont to Font -> plus all required functions!
|
||||
[core] RENAMED: enum TextureFormat to PixelFormat
|
||||
[core] REVIEWED: Rectangle params int to float
|
||||
[core] REVIEWED: timming system for macOS
|
||||
[core] REMOVED: ColorToFloat()
|
||||
[core] ADDED: GetCurrentTime() on macOS
|
||||
[core] ADDED: GetTime()
|
||||
[core] ADDED: struct Vector4
|
||||
[core] ADDED: SetTraceLog() to define trace log messages type
|
||||
[core] ADDED: GetFileName() to get filename from path string
|
||||
[core] ADDED: ColorToHSV()
|
||||
[core] ADDED: ColorNormalize()
|
||||
[core] ADDED: SetWindowSize() to scale Windows in runtime
|
||||
[core] ADDED: SetMouseScale() to scale mouse input
|
||||
[core] ADDED: key definitions - KEY_GRAVE, KEY_SLASH, KEY_BACKSLASH
|
||||
[core] RENAMED: GetHexValue() to ColorToInt()
|
||||
[core] REVIEWED: Fade()
|
||||
[core] REVIEWED: InitWindow() to avoid void pointer (safety)
|
||||
[core] Support camera 3d orthographic projection mode
|
||||
[shapes] ADDED: DrawRectangleLinesEx()
|
||||
[textures] Improved pixel formats support (32bit channels)
|
||||
[textures] Improved textures support for OpenGL 2.1
|
||||
[textures] REMOVED: DrawRectangleT() --> Added support to DrawRectangle()
|
||||
[textures] ADDED: GetPixelDataSize(); pixel data size in bytes (image or texture)
|
||||
[textures] ADDED: ImageAlphaClear() --> Clear alpha channel to desired color
|
||||
[textures] ADDED: ImageAlphaCrop() --> Crop image depending on alpha value
|
||||
[textures] ADDED: ImageAlphaPremultiply() --> Premultiply alpha channel
|
||||
[textures] ADDED: ImageDrawRectangle()
|
||||
[textures] ADDED: ImageMipmaps()
|
||||
[textures] ADDED: GenImageColor()
|
||||
[textures] ADDED: GetPixelDataSize()
|
||||
[textures] REVIEWED: GenImagePerlinNoise()
|
||||
[textures] REVIEWED: ImageTextEx() to support UTF8 basic characters
|
||||
[textures] REVIEWED: GetTextureData() for RPI - requires some work
|
||||
[textures] Added new example: text drawing on image
|
||||
[text] Corrected issue with ttf font y-offset
|
||||
[text] REVIEWED: DrawTextEx() - avoid rendering SPACE character!
|
||||
[rlgl] ADDED: LoadShaderCode()
|
||||
[rlgl] ADDED: GetMatrixModelview()
|
||||
[rlgl] ADDED: SetVrDistortionShader(Shader shader)
|
||||
[rlgl] REVIEWED: rlLoadTexture() - added mipmaps support, improved compressed textures loading
|
||||
[rlgl] REVIEWED: rlReadTexturePixels()
|
||||
[models] Support 4 components mesh.tangent data
|
||||
[models] Removed tangents generation from LoadOBJ()
|
||||
[models] ADDED: MeshTangents()
|
||||
[models] ADDED: MeshBinormals()
|
||||
[models] ADDED: ExportMesh()
|
||||
[models] ADDED: GetCollisionRayModel()
|
||||
[models] RENAMED: CalculateBoundingBox() to MeshBoundingBox()
|
||||
[models] REMOVED: GetCollisionRayMesh() - does not consider model transform
|
||||
[models] REVIEWED: LoadMesh() - fallback to default cube mesh if loading fails
|
||||
[audio] ADDED: IsAudioStreamPlaying()
|
||||
[audio] ADDED: SetAudioStreamVolume()
|
||||
[audio] ADDED: SetAudioStreamPitch()
|
||||
[utils] Corrected issue with SaveImageAs()
|
||||
[utils] RENAMED: SaveImageAs() to ExportImage()
|
||||
[utils] REMOVED: rres support - moved to external library (rres.h)
|
||||
[shaders] REVIEWED: GLSL 120 shaders
|
||||
[raymath] REVIEWED: math usage to reduce temp variables
|
||||
[raymath] REVIEWED: Avoid pointer-based parameters for API consistency
|
||||
[physac] REVIEWED: physac.h timming system
|
||||
[games] ADDED: GGJ18 game - transmission mission
|
||||
[*] Updated external libraries to latest version
|
||||
[*] Multiple bugs corrected (check github issues)
|
||||
|
||||
-----------------------------------------------
|
||||
Release: raylib 1.8.0 (Oct 2017)
|
||||
-----------------------------------------------
|
||||
|
|
35
CMakeLists.txt
Executable file → Normal file
|
@ -1,4 +1,5 @@
|
|||
cmake_minimum_required(VERSION 3.0)
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
|
||||
|
||||
# Config options
|
||||
option(BUILD_EXAMPLES "Build the examples." ON)
|
||||
|
@ -15,35 +16,25 @@ else()
|
|||
set (CMAKE_C_STANDARD 99)
|
||||
endif()
|
||||
|
||||
include(CheckCCompilerFlag)
|
||||
function(add_if_flag_works flag)
|
||||
CHECK_C_COMPILER_FLAG("${flag}" COMPILER_HAS_THOSE_TOGGLES)
|
||||
set(outcome "Failed")
|
||||
if(COMPILER_HAS_THOSE_TOGGLES)
|
||||
foreach(var ${ARGN})
|
||||
set(${var} "${flag} ${${var}}" PARENT_SCOPE)
|
||||
endforeach()
|
||||
set(outcome "works")
|
||||
endif()
|
||||
message(STATUS "Testing if ${flag} can be used -- ${outcome}")
|
||||
endfunction()
|
||||
|
||||
add_if_flag_works(-Werror=pointer-arith CMAKE_C_FLAGS)
|
||||
add_if_flag_works(-Werror=implicit-function-declaration CMAKE_C_FLAGS)
|
||||
include(AddIfFlagCompiles)
|
||||
add_if_flag_compiles(-Werror=pointer-arith CMAKE_C_FLAGS)
|
||||
add_if_flag_compiles(-Werror=implicit-function-declaration CMAKE_C_FLAGS)
|
||||
# src/external/jar_xm.h does shady stuff
|
||||
add_if_flag_works(-fno-strict-aliasing CMAKE_C_FLAGS)
|
||||
add_if_flag_compiles(-fno-strict-aliasing CMAKE_C_FLAGS)
|
||||
|
||||
include(CheckFileSystemSymlinkSupport)
|
||||
|
||||
if (ENABLE_ASAN)
|
||||
add_if_flag_works(-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
|
||||
add_if_flag_works(-fsanitize=address CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
|
||||
add_if_flag_compiles(-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
|
||||
add_if_flag_compiles(-fsanitize=address CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
|
||||
endif()
|
||||
if (ENABLE_UBSAN)
|
||||
add_if_flag_works(-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
|
||||
add_if_flag_works(-fsanitize=undefined CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
|
||||
add_if_flag_compiles(-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
|
||||
add_if_flag_compiles(-fsanitize=undefined CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
|
||||
endif()
|
||||
if (ENABLE_MSAN)
|
||||
add_if_flag_works(-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
|
||||
add_if_flag_works(-fsanitize=memory CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
|
||||
add_if_flag_compiles(-fno-omit-frame-pointer CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
|
||||
add_if_flag_compiles(-fsanitize=memory CMAKE_C_FLAGS CMAKE_LINKER_FLAGS)
|
||||
endif()
|
||||
|
||||
if (ENABLE_MSAN AND ENABLE_ASAN)
|
||||
|
|
|
@ -13,7 +13,7 @@ The following help is highly appreciated:
|
|||
- Testers of current features and multiple systems - Can you find some bug on raylib?
|
||||
|
||||
If you can not help on any of the above points but you still want to contribute in some way... please, consider helping
|
||||
with a small [donation](http://www.raylib.com/helpme.html) or contributing with [raylib patreon](https://www.patreon.com/raysan5). It will really motivate to continue improving this project...
|
||||
with a small [donation](http://www.raylib.com/helpme.html) or contributing with [raylib patreon](https://www.patreon.com/raylib). It will really motivate to continue improving this project...
|
||||
|
||||
raylib philosophy
|
||||
------------------
|
||||
|
@ -32,6 +32,6 @@ contact
|
|||
* Facebook: [http://www.facebook.com/raylibgames](http://www.facebook.com/raylibgames)
|
||||
* Reddit: [https://www.reddit.com/r/raylib](https://www.reddit.com/r/raylib)
|
||||
* Twitch: [http://www.twitch.tv/raysan5](http://www.twitch.tv/raysan5)
|
||||
* Patreon: [https://www.patreon.com/raysan5](https://www.patreon.com/raysan5)
|
||||
* Patreon: [https://www.patreon.com/raylib](https://www.patreon.com/raylib)
|
||||
|
||||
[raysan5]: mailto:ray@raylib.com "Ramon Santamaria - Ray San"
|
||||
|
|
|
@ -67,7 +67,7 @@ contact
|
|||
* Facebook: [http://www.facebook.com/raylibgames](http://www.facebook.com/raylibgames)
|
||||
* Reddit: [https://www.reddit.com/r/raylib](https://www.reddit.com/r/raylib)
|
||||
* Twitch: [http://www.twitch.tv/raysan5](http://www.twitch.tv/raysan5)
|
||||
* Patreon: [https://www.patreon.com/raysan5](https://www.patreon.com/raysan5)
|
||||
* Patreon: [https://www.patreon.com/raylib](https://www.patreon.com/raylib)
|
||||
* YouTube: [https://www.youtube.com/channel/raylib](https://www.youtube.com/channel/UC8WIBkhYb5sBNqXO1mZ7WSQ)
|
||||
|
||||
If you are using raylib and you enjoy it, please, [let me know][raysan5].
|
||||
|
|
12
cmake/AddIfFlagCompiles.cmake
Normal file
|
@ -0,0 +1,12 @@
|
|||
include(CheckCCompilerFlag)
|
||||
function(add_if_flag_compiles flag)
|
||||
CHECK_C_COMPILER_FLAG("${flag}" COMPILER_HAS_THOSE_TOGGLES)
|
||||
set(outcome "Failed")
|
||||
if(COMPILER_HAS_THOSE_TOGGLES)
|
||||
foreach(var ${ARGN})
|
||||
set(${var} "${flag} ${${var}}" PARENT_SCOPE)
|
||||
endforeach()
|
||||
set(outcome "compiles")
|
||||
endif()
|
||||
message(STATUS "Testing if ${flag} can be used -- ${outcome}")
|
||||
endfunction()
|
43
cmake/BuildType.cmake
Normal file
|
@ -0,0 +1,43 @@
|
|||
# Set a default build type if none was specified
|
||||
set(default_build_type "Release")
|
||||
if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
|
||||
set(default_build_type "Debug")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||
message(STATUS "Setting build type to '${default_build_type}' as none was specified.")
|
||||
set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE
|
||||
STRING "Choose the type of build." FORCE)
|
||||
# Set the possible values of build type for cmake-gui
|
||||
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release"
|
||||
"MinSizeRel" "RelWithDebInfo")
|
||||
endif()
|
||||
|
||||
# Taken from the https://github.com/OpenChemistry/tomviz project
|
||||
# Copyright (c) 2014-2017, Kitware, Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
#
|
||||
# 3. Neither the name of the copyright holder nor the names of its contributors
|
||||
# may be used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
||||
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
||||
# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
13
cmake/CheckFileSystemSymlinkSupport.cmake
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Populates a ${FILESYSTEM_LACKS_SYMLINKS} variable
|
||||
message(STATUS "Testing if file system supports symlinks")
|
||||
execute_process(
|
||||
COMMAND ${CMAKE_COMMAND} -E create_symlink CMakeLists.txt "${CMAKE_CURRENT_BINARY_DIR}/TestingIfSymlinkWorks"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
RESULT_VARIABLE FILESYSTEM_LACKS_SYMLINKS
|
||||
)
|
||||
If (FILESYSTEM_LACKS_SYMLINKS)
|
||||
message(STATUS "Testing if file system supports symlinks -- unsupported")
|
||||
else()
|
||||
message(STATUS "Testing if file system supports symlinks -- supported")
|
||||
endif()
|
||||
|
15
cmake/emscripten.cmake
Normal file
|
@ -0,0 +1,15 @@
|
|||
SET(CMAKE_SYSTEM_NAME Linux)
|
||||
|
||||
SET(CMAKE_C_COMPILER emcc)
|
||||
SET(CMAKE_CXX_COMPILER em++)
|
||||
if(NOT DEFINED CMAKE_AR)
|
||||
find_program(CMAKE_AR NAMES emar)
|
||||
endif()
|
||||
if(NOT DEFINED CMAKE_RANLIB)
|
||||
find_program(CMAKE_RANLIB NAMES emranlib)
|
||||
endif()
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
|
72
utils.cmake → cmake/utils.cmake
Normal file → Executable file
|
@ -5,7 +5,11 @@ add_definitions("-DRAYLIB_CMAKE=1")
|
|||
|
||||
# Linking for OS X -framework options
|
||||
# Will do nothing on other OSes
|
||||
if(APPLE)
|
||||
if(${PLATFORM} MATCHES "Android")
|
||||
find_library(OPENGL_LIBRARY OpenGL)
|
||||
set(LIBS_PRIVATE m log android EGL GLESv2 OpenSLES atomic c)
|
||||
elseif(${PLATFORM} MATCHES "Web")
|
||||
elseif(APPLE)
|
||||
find_library(OPENGL_LIBRARY OpenGL)
|
||||
find_library(COCOA_LIBRARY Cocoa)
|
||||
find_library(IOKIT_LIBRARY IOKit)
|
||||
|
@ -17,57 +21,36 @@ if(APPLE)
|
|||
elseif(WIN32)
|
||||
# no pkg-config --static on Windows yet...
|
||||
else()
|
||||
if(USE_WAYLAND)
|
||||
set(_GLFW_WAYLAND 1)
|
||||
else()
|
||||
set(_GLFW_X11 1)
|
||||
endif()
|
||||
|
||||
find_library(pthread NAMES pthread)
|
||||
find_package(OpenGL QUIET)
|
||||
if ("${OPENGL_LIBRARIES}" STREQUAL "")
|
||||
if(NOT USE_WAYLAND)
|
||||
# CFLAGS=-m32 cmake on Linux fails for some reason, so fallback to hardcoding
|
||||
set(LIBS_PRIVATE m pthread GL X11 Xrandr Xinerama Xi Xxf86vm Xcursor)
|
||||
else()
|
||||
# CFLAGS=-m32 cmake on Linux fails for some reason, so fallback to hardcoding
|
||||
set(LIBS_PRIVATE m pthread GL wayland-client wayland-cursor wayland-egl)
|
||||
endif()
|
||||
set(OPENGL_LIBRARIES "GL")
|
||||
endif()
|
||||
|
||||
include_directories(${OPENGL_INCLUDE_DIR})
|
||||
|
||||
if ("${CMAKE_SYSTEM_NAME}" MATCHES "(Net|Open)BSD")
|
||||
find_library(OSS_LIBRARY ossaudio)
|
||||
endif()
|
||||
|
||||
set(LIBS_PRIVATE m pthread ${OPENGL_LIBRARIES} ${OSS_LIBRARY})
|
||||
# TODO: maybe read those out of glfw's cmake config?
|
||||
if(USE_WAYLAND)
|
||||
set(LIBS_PRIVATE ${LIBS_PRIVATE} wayland-client wayland-cursor wayland-egl)
|
||||
else()
|
||||
if(NOT USE_WAYLAND)
|
||||
find_package(X11 REQUIRED X11)
|
||||
find_library(XRANDR_LIBRARY Xrandr)
|
||||
find_library(XI_LIBRARY Xi)
|
||||
find_library(XINERAMA_LIBRARY Xinerama)
|
||||
find_library(XXF86VM_LIBRARY Xxf86vm)
|
||||
find_library(XCURSOR_LIBRARY Xcursor)
|
||||
else()
|
||||
find_library(WAYLAND_CLIENT_LIBRARY wayland-client)
|
||||
find_library(WAYLAND_CURSOR_LIBRARY wayland-cursor)
|
||||
find_library(WAYLAND_EGL_LIBRARY wayland-egl)
|
||||
endif()
|
||||
|
||||
include_directories(${OPENGL_INCLUDE_DIR})
|
||||
|
||||
if ("${CMAKE_SYSTEM_NAME}" MATCHES "(Net|Open)BSD")
|
||||
find_library(OSS_LIBRARY ossaudio)
|
||||
endif()
|
||||
|
||||
if(NOT USE_WAYLAND)
|
||||
set(LIBS_PRIVATE m ${pthread} ${OPENGL_LIBRARIES} ${X11_LIBRARIES} ${XRANDR_LIBRARY} ${XINERAMA_LIBRARY} ${XI_LIBRARY} ${XXF86VM_LIBRARY} ${XCURSOR_LIBRARY} ${OSS_LIBRARY})
|
||||
else()
|
||||
set(LIBS_PRIVATE m ${pthread} ${OPENGL_LIBRARIES} ${WAYLAND_CLIENT_LIBRARY} ${WAYLAND_CURSOR_LIBRARY} ${WAYLAND_EGL_LIBRARY} ${OSS_LIBRARY})
|
||||
endif()
|
||||
set(LIBS_PRIVATE ${LIBS_PRIVATE} X11 Xrandr Xinerama Xi Xxf86vm Xcursor)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(USE_EXTERNAL_GLFW STREQUAL "ON")
|
||||
if(${PLATFORM} MATCHES "Desktop")
|
||||
if(USE_EXTERNAL_GLFW STREQUAL "ON")
|
||||
find_package(glfw3 3.2.1 REQUIRED)
|
||||
elseif(USE_EXTERNAL_GLFW STREQUAL "IF_POSSIBLE")
|
||||
elseif(USE_EXTERNAL_GLFW STREQUAL "IF_POSSIBLE")
|
||||
find_package(glfw3 3.2.1 QUIET)
|
||||
endif()
|
||||
if (glfw3_FOUND)
|
||||
set(LIBS_PRIVATE ${LIBS_PRIVATE} glfw)
|
||||
endif()
|
||||
if (glfw3_FOUND)
|
||||
set(LIBS_PRIVATE ${LIBS_PRIVATE} glfw)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CMAKE_SYSTEM_NAME STREQUAL Linux)
|
||||
|
@ -105,6 +88,9 @@ function(link_libraries_to_executable executable)
|
|||
# Link raylib
|
||||
if (TARGET raylib_shared)
|
||||
target_link_libraries(${executable} raylib_shared)
|
||||
elseif(${PLATFORM} MATCHES "Web")
|
||||
target_link_libraries(${executable} ${__PKG_CONFIG_LIBS_PRIVATE})
|
||||
target_link_libraries(${executable} raylib)
|
||||
else()
|
||||
target_link_libraries(${executable} raylib ${__PKG_CONFIG_LIBS_PRIVATE})
|
||||
endif()
|
|
@ -1,7 +1,7 @@
|
|||
# Setup the project and settings
|
||||
project(examples)
|
||||
|
||||
include("../utils.cmake")
|
||||
include("../cmake/utils.cmake")
|
||||
|
||||
# Make sure raylib has been built
|
||||
# TODO `build` directory should maybe be something else...
|
||||
|
@ -40,6 +40,29 @@ if(NOT HAVE_OCULUS_CAPI)
|
|||
endif()
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/standard_lighting.c)
|
||||
|
||||
if(${PLATFORM} MATCHES "Android")
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/others/rlgl_standalone.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_3d_picking.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_vr_simulator.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_3d_camera_free.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_3d_camera_first_person.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_world_screen.c)
|
||||
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_picking.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_material_pbr.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_cubicmap.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_skybox.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_picking.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_generation.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_heightmap.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_billboard.c)
|
||||
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_custom_uniform.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_model_shader.c)
|
||||
list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/shaders/shaders_postprocessing.c)
|
||||
|
||||
endif()
|
||||
|
||||
|
||||
# Do each example
|
||||
foreach(example_source ${example_sources})
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
# Define required raylib variables
|
||||
PROJECT_NAME ?= raylib_examples
|
||||
RAYLIB_VERSION ?= 1.9.7
|
||||
RAYLIB_VERSION ?= 2.0.0
|
||||
RAYLIB_API_VERSION ?= 1
|
||||
RAYLIB_PATH ?= ..
|
||||
|
||||
|
@ -207,7 +207,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
# resources file contains windows exe icon
|
||||
# -Wl,--subsystem,windows hides the console window
|
||||
CFLAGS += $(RAYLIB_PATH)/src/resources -Wl,--subsystem,windows
|
||||
CFLAGS += $(RAYLIB_PATH)/src/raylib_icon -Wl,--subsystem,windows
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
ifeq ($(RAYLIB_BUILD_MODE),DEBUG)
|
||||
|
@ -215,7 +215,7 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|||
#CC = clang
|
||||
endif
|
||||
ifeq ($(RAYLIB_LIBTYPE),STATIC)
|
||||
CFLAGS += -no-pie -D_DEFAULT_SOURCE
|
||||
CFLAGS += -D_DEFAULT_SOURCE
|
||||
endif
|
||||
ifeq ($(RAYLIB_LIBTYPE),SHARED)
|
||||
# Explicitly enable runtime link to libraylib.so
|
||||
|
|
|
@ -97,7 +97,7 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin2dMode(camera);
|
||||
BeginMode2D(camera);
|
||||
|
||||
DrawRectangle(-6000, 320, 13000, 8000, DARKGRAY);
|
||||
|
||||
|
@ -108,7 +108,7 @@ int main()
|
|||
DrawRectangle(camera.target.x, -500, 1, screenHeight*4, GREEN);
|
||||
DrawRectangle(-500, camera.target.y, screenWidth*4, 1, GREEN);
|
||||
|
||||
End2dMode();
|
||||
EndMode2D();
|
||||
|
||||
DrawText("SCREEN AREA", 640, 10, 20, RED);
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawPlane((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector2){ 32.0f, 32.0f }, LIGHTGRAY); // Draw ground
|
||||
DrawCube((Vector3){ -16.0f, 2.5f, 0.0f }, 1.0f, 5.0f, 32.0f, BLUE); // Draw a blue wall
|
||||
|
@ -75,7 +75,7 @@ int main()
|
|||
DrawCubeWires(positions[i], 2.0f, heights[i], 2.0f, MAROON);
|
||||
}
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawRectangle( 10, 10, 220, 70, Fade(SKYBLUE, 0.5f));
|
||||
DrawRectangleLines( 10, 10, 220, 70, BLUE);
|
||||
|
|
|
@ -21,11 +21,12 @@ int main()
|
|||
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d camera free");
|
||||
|
||||
// Define the camera to look into our 3d world
|
||||
Camera camera;
|
||||
Camera3D camera;
|
||||
camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position
|
||||
camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
|
||||
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
|
||||
camera.fovy = 45.0f; // Camera field-of-view Y
|
||||
camera.type = CAMERA_PERSPECTIVE; // Camera mode type
|
||||
|
||||
Vector3 cubePosition = { 0.0f, 0.0f, 0.0f };
|
||||
|
||||
|
@ -50,14 +51,14 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
|
||||
DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
|
||||
|
||||
DrawGrid(10, 1.0f);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawRectangle( 10, 10, 320, 133, Fade(SKYBLUE, 0.5f));
|
||||
DrawRectangleLines( 10, 10, 320, 133, BLUE);
|
||||
|
|
|
@ -21,11 +21,12 @@ int main()
|
|||
InitWindow(screenWidth, screenHeight, "raylib [core] example - 3d mode");
|
||||
|
||||
// Define the camera to look into our 3d world
|
||||
Camera camera;
|
||||
Camera3D camera;
|
||||
camera.position = (Vector3){ 0.0f, 10.0f, 10.0f }; // Camera position
|
||||
camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
|
||||
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
|
||||
camera.fovy = 45.0f; // Camera field-of-view Y
|
||||
camera.type = CAMERA_PERSPECTIVE; // Camera mode type
|
||||
|
||||
Vector3 cubePosition = { 0.0f, 0.0f, 0.0f };
|
||||
|
||||
|
@ -46,14 +47,14 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
|
||||
DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
|
||||
|
||||
DrawGrid(10, 1.0f);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawText("Welcome to the third dimension!", 10, 40, 20, DARKGRAY);
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@ int main()
|
|||
camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point
|
||||
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
|
||||
camera.fovy = 45.0f; // Camera field-of-view Y
|
||||
camera.type = CAMERA_PERSPECTIVE; // Camera mode type
|
||||
|
||||
Vector3 cubePosition = { 0.0f, 1.0f, 0.0f };
|
||||
Vector3 cubeSize = { 2.0f, 2.0f, 2.0f };
|
||||
|
@ -63,7 +64,7 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
if (collision)
|
||||
{
|
||||
|
@ -81,7 +82,7 @@ int main()
|
|||
DrawRay(ray, MAROON);
|
||||
DrawGrid(10, 1.0f);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawText("Try selecting the box with mouse!", 240, 10, 20, DARKGRAY);
|
||||
|
||||
|
|
|
@ -30,10 +30,10 @@ int main()
|
|||
{
|
||||
// Update
|
||||
//----------------------------------------------------------------------------------
|
||||
if (IsKeyDown(KEY_RIGHT)) ballPosition.x += 0.8f;
|
||||
if (IsKeyDown(KEY_LEFT)) ballPosition.x -= 0.8f;
|
||||
if (IsKeyDown(KEY_UP)) ballPosition.y -= 0.8f;
|
||||
if (IsKeyDown(KEY_DOWN)) ballPosition.y += 0.8f;
|
||||
if (IsKeyDown(KEY_RIGHT)) ballPosition.x += 2.0f;
|
||||
if (IsKeyDown(KEY_LEFT)) ballPosition.x -= 2.0f;
|
||||
if (IsKeyDown(KEY_UP)) ballPosition.y -= 2.0f;
|
||||
if (IsKeyDown(KEY_DOWN)) ballPosition.y += 2.0f;
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
// Draw
|
||||
|
|
|
@ -57,14 +57,14 @@ int main()
|
|||
|
||||
BeginVrDrawing();
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
|
||||
DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
|
||||
|
||||
DrawGrid(40, 1.0f);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
EndVrDrawing();
|
||||
|
||||
|
|
|
@ -54,14 +54,14 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
|
||||
DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
|
||||
|
||||
DrawGrid(10, 1.0f);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawText("Enemy: 100 / 100", cubeScreenPosition.x - MeasureText("Enemy: 100 / 100", 20) / 2, cubeScreenPosition.y, 20, BLACK);
|
||||
DrawText("Text is always on top of the cube", (screenWidth - MeasureText("Text is always on top of the cube", 20)) / 2, 25, 20, GRAY);
|
||||
|
|
|
@ -51,13 +51,13 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawBillboard(camera, bill, billPosition, 2.0f, WHITE);
|
||||
|
||||
DrawGrid(10, 1.0f); // Draw a grid
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawFPS(10, 10);
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
// Draw enemy-box
|
||||
DrawCube(enemyBoxPos, enemyBoxSize.x, enemyBoxSize.y, enemyBoxSize.z, GRAY);
|
||||
|
@ -102,7 +102,7 @@ int main()
|
|||
|
||||
DrawGrid(10, 1.0f); // Draw a grid
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawText("Move player with cursors to collide", 220, 40, 20, GRAY);
|
||||
|
||||
|
|
|
@ -56,11 +56,11 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawModel(model, mapPosition, 1.0f, WHITE);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawTextureEx(cubicmap, (Vector2){ screenWidth - cubicmap.width*4 - 20, 20 }, 0.0f, 4.0f, WHITE);
|
||||
DrawRectangleLines(screenWidth - cubicmap.width*4 - 20, 20, cubicmap.width*4, cubicmap.height*4, GREEN);
|
||||
|
|
|
@ -45,7 +45,7 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawCube((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, RED);
|
||||
DrawCubeWires((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, GOLD);
|
||||
|
@ -63,7 +63,7 @@ int main()
|
|||
|
||||
DrawGrid(10, 1.0f); // Draw a grid
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawFPS(10, 10);
|
||||
|
||||
|
|
|
@ -53,13 +53,13 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawModel(model, mapPosition, 1.0f, RED);
|
||||
|
||||
DrawGrid(20, 1.0f);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawTexture(texture, screenWidth - texture.width - 20, 20, WHITE);
|
||||
DrawRectangleLines(screenWidth - texture.width - 20, 20, texture.width, texture.height, GREEN);
|
||||
|
|
|
@ -38,6 +38,7 @@ int main()
|
|||
|
||||
// Load model and PBR material
|
||||
Model model = LoadModel("resources/pbr/trooper.obj");
|
||||
MeshTangents(&model.mesh);
|
||||
model.material = LoadMaterialPBR((Color){ 255, 255, 255, 255 }, 1.0f, 1.0f);
|
||||
|
||||
// Define lights attributes
|
||||
|
@ -72,13 +73,13 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawModel(model, Vector3Zero(), 1.0f, WHITE);
|
||||
|
||||
DrawGrid(10, 1.0f);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawFPS(10, 10);
|
||||
|
||||
|
@ -121,7 +122,7 @@ static Material LoadMaterialPBR(Color albedo, float metalness, float roughness)
|
|||
mat.shader.locs[LOC_MAP_BRDF] = GetShaderLocation(mat.shader, "brdfLUT");
|
||||
|
||||
// Set view matrix location
|
||||
mat.shader.locs[LOC_MATRIX_MODEL] = GetShaderLocation(mat.shader, "mMatrix");
|
||||
mat.shader.locs[LOC_MATRIX_MODEL] = GetShaderLocation(mat.shader, "matModel");
|
||||
mat.shader.locs[LOC_MATRIX_VIEW] = GetShaderLocation(mat.shader, "view");
|
||||
mat.shader.locs[LOC_VECTOR_VIEW] = GetShaderLocation(mat.shader, "viewPos");
|
||||
|
||||
|
|
|
@ -72,13 +72,13 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawModel(models[currentModel], position, 1.0f, WHITE);
|
||||
|
||||
DrawGrid(10, 1.0);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawRectangle(30, 400, 310, 30, Fade(SKYBLUE, 0.5f));
|
||||
DrawRectangleLines(30, 400, 310, 30, Fade(DARKBLUE, 0.5f));
|
||||
|
|
|
@ -30,6 +30,7 @@ int main()
|
|||
camera.target = (Vector3){ 0.0f, 2.3f, 0.0f }; // Camera looking at point
|
||||
camera.up = (Vector3){ 0.0f, 1.6f, 0.0f }; // Camera up vector (rotation towards target)
|
||||
camera.fovy = 45.0f; // Camera field-of-view Y
|
||||
camera.type = CAMERA_PERSPECTIVE; // Camera mode type
|
||||
|
||||
Ray ray; // Picking ray
|
||||
|
||||
|
@ -120,7 +121,7 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
// Draw the tower
|
||||
DrawModel(tower, towerPos, 1.0, WHITE);
|
||||
|
@ -151,7 +152,7 @@ int main()
|
|||
|
||||
DrawGrid(100, 1.0f);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
// Draw some debug GUI text
|
||||
DrawText(FormatText("Hit Object: %s", hitObjectName), 10, 50, 10, BLACK);
|
||||
|
|
|
@ -22,11 +22,11 @@ int main()
|
|||
|
||||
// Define the camera to look into our 3d world
|
||||
Camera camera = { 0 };
|
||||
camera.position = (Vector3){ 3.0f, 3.0f, 3.0f };
|
||||
camera.target = (Vector3){ 0.0f, 1.5f, 0.0f };
|
||||
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f };
|
||||
camera.fovy = 45.0f;
|
||||
camera.type = CAMERA_PERSPECTIVE;
|
||||
camera.position = (Vector3){ 3.0f, 3.0f, 3.0f }; // Camera position
|
||||
camera.target = (Vector3){ 0.0f, 1.5f, 0.0f }; // Camera looking at point
|
||||
camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target)
|
||||
camera.fovy = 45.0f; // Camera field-of-view Y
|
||||
camera.type = CAMERA_PERSPECTIVE; // Camera mode type
|
||||
|
||||
Model dwarf = LoadModel("resources/model/dwarf.obj"); // Load OBJ model
|
||||
Texture2D texture = LoadTexture("resources/model/dwarf_diffuse.png"); // Load model texture
|
||||
|
@ -50,7 +50,7 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawModel(dwarf, position, 2.0f, WHITE); // Draw 3d model with texture
|
||||
|
||||
|
@ -58,7 +58,7 @@ int main()
|
|||
|
||||
DrawGizmo(position); // Draw gizmo
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, GRAY);
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawCube((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, RED);
|
||||
DrawCubeWires((Vector3){-4.0f, 0.0f, 2.0f}, 2.0f, 5.0f, 2.0f, GOLD);
|
||||
|
@ -75,7 +75,7 @@ int main()
|
|||
|
||||
DrawGrid(10, 1.0f); // Draw a grid
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawText("Press Spacebar to switch camera type", 10, GetScreenHeight() - 30, 20, DARKGRAY);
|
||||
|
||||
|
|
|
@ -60,13 +60,13 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawModel(skybox, (Vector3){0, 0, 0}, 1.0f, WHITE);
|
||||
|
||||
DrawGrid(10, 1.0f);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawFPS(10, 10);
|
||||
|
||||
|
|
|
@ -137,12 +137,12 @@ int main()
|
|||
EndTextureMode();
|
||||
|
||||
// Draw 3D model (recomended to draw 3D always before 2D)
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawModel(model, (Vector3){ 0, 6.0f, 0 }, 1.0f, WHITE); // Draw 3d model with texture
|
||||
DrawGrid(10, 10.0f);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
// Draw 2D GUI stuff
|
||||
DrawAngleGauge(texAngleGauge, 80, 70, roll, "roll", RED);
|
||||
|
|
|
@ -16,7 +16,7 @@ in vec4 vertexTangent;
|
|||
|
||||
// Input uniform values
|
||||
uniform mat4 mvp;
|
||||
uniform mat4 mMatrix;
|
||||
uniform mat4 matModel;
|
||||
|
||||
// Output vertex attributes (to fragment shader)
|
||||
out vec3 fragPosition;
|
||||
|
@ -31,10 +31,10 @@ void main()
|
|||
vec3 vertexBinormal = cross(vertexNormal, vec3(vertexTangent));
|
||||
|
||||
// Calculate fragment normal based on normal transformations
|
||||
mat3 normalMatrix = transpose(inverse(mat3(mMatrix)));
|
||||
mat3 normalMatrix = transpose(inverse(mat3(matModel)));
|
||||
|
||||
// Calculate fragment position based on model transformations
|
||||
fragPosition = vec3(mMatrix*vec4(vertexPosition, 1.0f));
|
||||
fragPosition = vec3(matModel*vec4(vertexPosition, 1.0f));
|
||||
|
||||
// Send vertex attributes to fragment shader
|
||||
fragTexCoord = vertexTexCoord;
|
||||
|
|
|
@ -151,14 +151,14 @@ int main()
|
|||
if (vrDeviceReady) BeginOculusDrawing();
|
||||
else BeginVrDrawing();
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED);
|
||||
DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, MAROON);
|
||||
|
||||
DrawGrid(40, 1.0f);
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
if (vrDeviceReady) EndOculusDrawing();
|
||||
else EndVrDrawing();
|
||||
|
|
|
@ -159,7 +159,7 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawModel(dwarf, position, 2.0f, WHITE); // Draw 3d model with texture
|
||||
|
||||
|
@ -169,7 +169,7 @@ int main()
|
|||
|
||||
DrawGrid(10, 1.0f); // Draw a grid
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, GRAY);
|
||||
|
||||
|
|
|
@ -85,13 +85,13 @@ int main()
|
|||
|
||||
BeginTextureMode(target); // Enable drawing to texture
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawModel(dwarf, position, 2.0f, WHITE); // Draw 3d model with texture
|
||||
|
||||
DrawGrid(10, 1.0f); // Draw a grid
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawText("TEXT DRAWN IN RENDER TEXTURE", 200, 10, 30, RED);
|
||||
|
||||
|
|
|
@ -66,13 +66,13 @@ int main()
|
|||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawModel(dwarf, position, 2.0f, WHITE); // Draw 3d model with texture
|
||||
|
||||
DrawGrid(10, 1.0f); // Draw a grid
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
DrawText("(c) Dwarf 3D model by David Moreno", screenWidth - 200, screenHeight - 20, 10, GRAY);
|
||||
|
||||
|
|
|
@ -130,13 +130,13 @@ int main()
|
|||
|
||||
BeginTextureMode(target); // Enable drawing to texture
|
||||
|
||||
Begin3dMode(camera);
|
||||
BeginMode3D(camera);
|
||||
|
||||
DrawModel(dwarf, position, 2.0f, WHITE); // Draw 3d model with texture
|
||||
|
||||
DrawGrid(10, 1.0f); // Draw a grid
|
||||
|
||||
End3dMode();
|
||||
EndMode3D();
|
||||
|
||||
EndTextureMode(); // End drawing to texture (now we have a texture available for next passes)
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*******************************************************************************************
|
||||
*
|
||||
* raylib [text] example - BMFont and TTF SpriteFonts loading
|
||||
* raylib [text] example - BMFont and TTF Fonts loading
|
||||
*
|
||||
* This example has been created using raylib 1.4 (www.raylib.com)
|
||||
* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details)
|
||||
|
@ -24,8 +24,8 @@ int main()
|
|||
const char msgTtf[64] = "THIS SPRITE FONT has been GENERATED from a TTF";
|
||||
|
||||
// NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required)
|
||||
SpriteFont fontBm = LoadSpriteFont("resources/bmfont.fnt"); // BMFont (AngelCode)
|
||||
SpriteFont fontTtf = LoadSpriteFont("resources/pixantiqua.ttf"); // TTF font
|
||||
Font fontBm = LoadFont("resources/bmfont.fnt"); // BMFont (AngelCode)
|
||||
Font fontTtf = LoadFont("resources/pixantiqua.ttf"); // TTF font
|
||||
|
||||
Vector2 fontPosition;
|
||||
|
||||
|
@ -58,8 +58,8 @@ int main()
|
|||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
UnloadSpriteFont(fontBm); // AngelCode SpriteFont unloading
|
||||
UnloadSpriteFont(fontTtf); // TTF SpriteFont unloading
|
||||
UnloadFont(fontBm); // AngelCode Font unloading
|
||||
UnloadFont(fontTtf); // TTF Font unloading
|
||||
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
|
|
@ -25,7 +25,7 @@ int main()
|
|||
const char msg[256] = "ASCII extended characters:\n¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆ\nÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæ\nçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
|
||||
|
||||
// NOTE: Loaded font has an unordered list of characters (chars in the range 32..255)
|
||||
SpriteFont font = LoadSpriteFont("resources/pixantiqua.fnt"); // BMFont (AngelCode)
|
||||
Font font = LoadFont("resources/pixantiqua.fnt"); // BMFont (AngelCode)
|
||||
|
||||
SetTargetFPS(60);
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
@ -56,7 +56,7 @@ int main()
|
|||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
UnloadSpriteFont(font); // AngelCode SpriteFont unloading
|
||||
UnloadFont(font); // AngelCode Font unloading
|
||||
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
|
|
@ -26,16 +26,16 @@ int main()
|
|||
InitWindow(screenWidth, screenHeight, "raylib [text] example - raylib fonts");
|
||||
|
||||
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
|
||||
SpriteFont fonts[MAX_FONTS];
|
||||
Font fonts[MAX_FONTS];
|
||||
|
||||
fonts[0] = LoadSpriteFont("resources/fonts/alagard.png");
|
||||
fonts[1] = LoadSpriteFont("resources/fonts/pixelplay.png");
|
||||
fonts[2] = LoadSpriteFont("resources/fonts/mecha.png");
|
||||
fonts[3] = LoadSpriteFont("resources/fonts/setback.png");
|
||||
fonts[4] = LoadSpriteFont("resources/fonts/romulus.png");
|
||||
fonts[5] = LoadSpriteFont("resources/fonts/pixantiqua.png");
|
||||
fonts[6] = LoadSpriteFont("resources/fonts/alpha_beta.png");
|
||||
fonts[7] = LoadSpriteFont("resources/fonts/jupiter_crash.png");
|
||||
fonts[0] = LoadFont("resources/fonts/alagard.png");
|
||||
fonts[1] = LoadFont("resources/fonts/pixelplay.png");
|
||||
fonts[2] = LoadFont("resources/fonts/mecha.png");
|
||||
fonts[3] = LoadFont("resources/fonts/setback.png");
|
||||
fonts[4] = LoadFont("resources/fonts/romulus.png");
|
||||
fonts[5] = LoadFont("resources/fonts/pixantiqua.png");
|
||||
fonts[6] = LoadFont("resources/fonts/alpha_beta.png");
|
||||
fonts[7] = LoadFont("resources/fonts/jupiter_crash.png");
|
||||
|
||||
const char *messages[MAX_FONTS] = { "ALAGARD FONT designed by Hewett Tsoi",
|
||||
"PIXELPLAY FONT designed by Aleksander Shevchuk",
|
||||
|
@ -93,8 +93,8 @@ int main()
|
|||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
// SpriteFonts unloading
|
||||
for (int i = 0; i < MAX_FONTS; i++) UnloadSpriteFont(fonts[i]);
|
||||
// Fonts unloading
|
||||
for (int i = 0; i < MAX_FONTS; i++) UnloadFont(fonts[i]);
|
||||
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/*******************************************************************************************
|
||||
*
|
||||
* raylib [text] example - SpriteFont loading and usage
|
||||
* raylib [text] example - Font loading and usage
|
||||
*
|
||||
* 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)
|
||||
|
@ -25,9 +25,9 @@ int main()
|
|||
const char msg3[50] = "...and a THIRD one! GREAT! :D";
|
||||
|
||||
// NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required)
|
||||
SpriteFont font1 = LoadSpriteFont("resources/custom_mecha.png"); // SpriteFont loading
|
||||
SpriteFont font2 = LoadSpriteFont("resources/custom_alagard.png"); // SpriteFont loading
|
||||
SpriteFont font3 = LoadSpriteFont("resources/custom_jupiter_crash.png"); // SpriteFont loading
|
||||
Font font1 = LoadFont("resources/custom_mecha.png"); // Font loading
|
||||
Font font2 = LoadFont("resources/custom_alagard.png"); // Font loading
|
||||
Font font3 = LoadFont("resources/custom_jupiter_crash.png"); // Font loading
|
||||
|
||||
Vector2 fontPosition1, fontPosition2, fontPosition3;
|
||||
|
||||
|
@ -66,9 +66,9 @@ int main()
|
|||
|
||||
// De-Initialization
|
||||
//--------------------------------------------------------------------------------------
|
||||
UnloadSpriteFont(font1); // SpriteFont unloading
|
||||
UnloadSpriteFont(font2); // SpriteFont unloading
|
||||
UnloadSpriteFont(font3); // SpriteFont unloading
|
||||
UnloadFont(font1); // Font unloading
|
||||
UnloadFont(font2); // Font unloading
|
||||
UnloadFont(font3); // Font unloading
|
||||
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
|
|
@ -20,12 +20,12 @@ int main()
|
|||
|
||||
InitWindow(screenWidth, screenHeight, "raylib [text] example - ttf loading");
|
||||
|
||||
const char msg[50] = "TTF SpriteFont";
|
||||
const char msg[50] = "TTF Font";
|
||||
|
||||
// NOTE: Textures/Fonts MUST be loaded after Window initialization (OpenGL context is required)
|
||||
|
||||
// TTF SpriteFont loading with custom generation parameters
|
||||
SpriteFont font = LoadSpriteFontEx("resources/KAISG.ttf", 96, 0, 0);
|
||||
// TTF Font loading with custom generation parameters
|
||||
Font font = LoadFontEx("resources/KAISG.ttf", 96, 0, 0);
|
||||
|
||||
// Generate mipmap levels to use trilinear filtering
|
||||
// NOTE: On 2D drawing it won't be noticeable, it looks like FILTER_BILINEAR
|
||||
|
@ -85,8 +85,8 @@ int main()
|
|||
|
||||
if (count == 1) // Only support one ttf file dropped
|
||||
{
|
||||
UnloadSpriteFont(font);
|
||||
font = LoadSpriteFontEx(droppedFiles[0], fontSize, 0, 0);
|
||||
UnloadFont(font);
|
||||
font = LoadFontEx(droppedFiles[0], fontSize, 0, 0);
|
||||
ClearDroppedFiles();
|
||||
}
|
||||
}
|
||||
|
@ -127,7 +127,7 @@ int main()
|
|||
#if defined(PLATFORM_DESKTOP)
|
||||
ClearDroppedFiles(); // Clear internal buffers
|
||||
#endif
|
||||
UnloadSpriteFont(font); // SpriteFont unloading
|
||||
UnloadFont(font); // Font unloading
|
||||
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
|
|
@ -38,12 +38,12 @@ int main()
|
|||
UnloadImage(cat); // Unload image from RAM
|
||||
|
||||
// Load custom font for frawing on image
|
||||
SpriteFont font = LoadSpriteFont("resources/custom_jupiter_crash.png");
|
||||
Font font = LoadFont("resources/custom_jupiter_crash.png");
|
||||
|
||||
// Draw over image using custom font
|
||||
ImageDrawTextEx(&parrots, (Vector2){ 300, 230 }, font, "PARROTS & CAT", font.baseSize, -2, WHITE);
|
||||
|
||||
UnloadSpriteFont(font); // Unload custom spritefont (already drawn used on image)
|
||||
UnloadFont(font); // Unload custom spritefont (already drawn used on image)
|
||||
|
||||
Texture2D texture = LoadTextureFromImage(parrots); // Image converted to texture, uploaded to GPU memory (VRAM)
|
||||
UnloadImage(parrots); // Once image has been converted to texture and uploaded to VRAM, it can be unloaded from RAM
|
||||
|
|
|
@ -58,7 +58,7 @@ int main()
|
|||
{
|
||||
// Update
|
||||
//----------------------------------------------------------------------------------
|
||||
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON))
|
||||
if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) || IsKeyPressed(KEY_RIGHT))
|
||||
{
|
||||
currentTexture = (currentTexture + 1)%NUM_TEXTURES; // Cycle between the textures
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ int main()
|
|||
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
|
||||
|
||||
Image image = LoadImage("resources/parrots.png"); // Loaded in CPU memory (RAM)
|
||||
ImageFormat(&image, UNCOMPRESSED_R8G8B8A8); // Format image to RGBA 32bit (required for texture update)
|
||||
ImageFormat(&image, UNCOMPRESSED_R8G8B8A8); // Format image to RGBA 32bit (required for texture update) <-- ISSUE
|
||||
Texture2D texture = LoadTextureFromImage(image); // Image converted to texture, GPU memory (VRAM)
|
||||
|
||||
int currentProcess = NONE;
|
||||
|
@ -121,18 +121,9 @@ int main()
|
|||
// Draw rectangles
|
||||
for (int i = 0; i < NUM_PROCESSES; i++)
|
||||
{
|
||||
if (i == currentProcess)
|
||||
{
|
||||
DrawRectangleRec(selectRecs[i], SKYBLUE);
|
||||
DrawRectangleLines(selectRecs[i].x, selectRecs[i].y, selectRecs[i].width, selectRecs[i].height, BLUE);
|
||||
DrawText(processText[i], selectRecs[i].x + selectRecs[i].width/2 - MeasureText(processText[i], 10)/2, selectRecs[i].y + 11, 10, DARKBLUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
DrawRectangleRec(selectRecs[i], LIGHTGRAY);
|
||||
DrawRectangleLines(selectRecs[i].x, selectRecs[i].y, selectRecs[i].width, selectRecs[i].height, GRAY);
|
||||
DrawText(processText[i], selectRecs[i].x + selectRecs[i].width/2 - MeasureText(processText[i], 10)/2, selectRecs[i].y + 11, 10, DARKGRAY);
|
||||
}
|
||||
DrawRectangleRec(selectRecs[i], (i == currentProcess) ? SKYBLUE : LIGHTGRAY);
|
||||
DrawRectangleLines(selectRecs[i].x, selectRecs[i].y, selectRecs[i].width, selectRecs[i].height, (i == currentProcess) ? BLUE : GRAY);
|
||||
DrawText(processText[i], selectRecs[i].x + selectRecs[i].width/2 - MeasureText(processText[i], 10)/2, selectRecs[i].y + 11, 10, (i == currentProcess) ? DARKBLUE : DARKGRAY);
|
||||
}
|
||||
|
||||
DrawTexture(texture, screenWidth - texture.width - 60, screenHeight/2 - texture.height/2, WHITE);
|
||||
|
|
|
@ -20,8 +20,8 @@ int main()
|
|||
|
||||
InitWindow(screenWidth, screenHeight, "raylib [texture] example - image text drawing");
|
||||
|
||||
// TTF SpriteFont loading with custom generation parameters
|
||||
SpriteFont font = LoadSpriteFontEx("resources/KAISG.ttf", 64, 0, 0);
|
||||
// TTF Font loading with custom generation parameters
|
||||
Font font = LoadFontEx("resources/KAISG.ttf", 64, 0, 0);
|
||||
|
||||
Image parrots = LoadImage("resources/parrots.png"); // Load image in CPU memory (RAM)
|
||||
|
||||
|
@ -74,7 +74,7 @@ int main()
|
|||
//--------------------------------------------------------------------------------------
|
||||
UnloadTexture(texture); // Texture unloading
|
||||
|
||||
UnloadSpriteFont(font); // Unload custom spritefont
|
||||
UnloadFont(font); // Unload custom spritefont
|
||||
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Setup the project and settings
|
||||
project(games)
|
||||
|
||||
include("../utils.cmake")
|
||||
include("../cmake/utils.cmake")
|
||||
|
||||
# Make sure raylib has been built
|
||||
# TODO `build` directory should maybe be something else...
|
||||
|
|
|
@ -160,10 +160,10 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
# resources file contains windows exe icon
|
||||
# -Wl,--subsystem,windows hides the console window
|
||||
CFLAGS += $(RAYLIB_PATH)/src/resources -Wl,--subsystem,windows
|
||||
CFLAGS += $(RAYLIB_PATH)/src/raylib_icon -Wl,--subsystem,windows
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
CFLAGS += -no-pie -D_DEFAULT_SOURCE
|
||||
CFLAGS += -D_DEFAULT_SOURCE
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
|
|
|
@ -49,7 +49,7 @@ int main()
|
|||
Texture2D gframe = LoadTexture("resources/gframe.png");
|
||||
|
||||
// Load game resources: fonts
|
||||
SpriteFont font = LoadSpriteFont("resources/komika.png");
|
||||
Font font = LoadFont("resources/komika.png");
|
||||
|
||||
// Define scrolling variables
|
||||
int backScrolling = 0;
|
||||
|
@ -438,7 +438,7 @@ int main()
|
|||
UnloadTexture(gamera);
|
||||
|
||||
// Unload font texture
|
||||
UnloadSpriteFont(font);
|
||||
UnloadFont(font);
|
||||
|
||||
CloseWindow(); // Close window and OpenGL context
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
|
|
@ -52,7 +52,7 @@ int main()
|
|||
Texture2D gframe = LoadTexture("resources/gframe.png");
|
||||
|
||||
// Load game resources: fonts
|
||||
SpriteFont font = LoadSpriteFont("resources/komika.png");
|
||||
Font font = LoadFont("resources/komika.png");
|
||||
|
||||
// Load game resources: sounds
|
||||
Sound eat = LoadSound("resources/eat.wav");
|
||||
|
@ -454,7 +454,7 @@ int main()
|
|||
UnloadTexture(gamera);
|
||||
|
||||
// Unload font texture
|
||||
UnloadSpriteFont(font);
|
||||
UnloadFont(font);
|
||||
|
||||
// Unload sounds
|
||||
UnloadSound(eat);
|
||||
|
|
|
@ -55,7 +55,7 @@ int main()
|
|||
Texture2D gframe = LoadTexture("resources/gframe.png");
|
||||
|
||||
// Load game resources: fonts
|
||||
SpriteFont font = LoadSpriteFont("resources/komika.png");
|
||||
Font font = LoadFont("resources/komika.png");
|
||||
|
||||
// Load game resources: sounds
|
||||
Sound eat = LoadSound("resources/eat.wav");
|
||||
|
@ -479,7 +479,7 @@ int main()
|
|||
UnloadTexture(gamera);
|
||||
|
||||
// Unload font texture
|
||||
UnloadSpriteFont(font);
|
||||
UnloadFont(font);
|
||||
|
||||
// Unload sounds
|
||||
UnloadSound(eat);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Setup the project and settings
|
||||
project(drturtle)
|
||||
|
||||
include("../../utils.cmake")
|
||||
include("../../cmake/utils.cmake")
|
||||
|
||||
|
||||
# Make sure raylib has been built
|
||||
|
|
|
@ -160,10 +160,10 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
# resources file contains windows exe icon
|
||||
# -Wl,--subsystem,windows hides the console window
|
||||
CFLAGS += $(RAYLIB_PATH)/src/resources -Wl,--subsystem,windows
|
||||
CFLAGS += $(RAYLIB_PATH)/src/raylib_icon -Wl,--subsystem,windows
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
CFLAGS += -no-pie -D_DEFAULT_SOURCE
|
||||
CFLAGS += -D_DEFAULT_SOURCE
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
|
|
|
@ -48,7 +48,7 @@ Texture2D swhale;
|
|||
Texture2D fish;
|
||||
Texture2D gframe;
|
||||
|
||||
SpriteFont font;
|
||||
Font font;
|
||||
|
||||
Sound eat;
|
||||
Sound die;
|
||||
|
@ -119,7 +119,7 @@ int main()
|
|||
gframe = LoadTexture("resources/gframe.png");
|
||||
|
||||
// Load game resources: fonts
|
||||
font = LoadSpriteFont("resources/komika.png");
|
||||
font = LoadFont("resources/komika.png");
|
||||
|
||||
// Load game resources: sounds
|
||||
eat = LoadSound("resources/eat.wav");
|
||||
|
@ -186,7 +186,7 @@ int main()
|
|||
UnloadTexture(gamera);
|
||||
|
||||
// Unload font texture
|
||||
UnloadSpriteFont(font);
|
||||
UnloadFont(font);
|
||||
|
||||
// Unload sounds
|
||||
UnloadSound(eat);
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Setup the project and settings
|
||||
project(just_do)
|
||||
|
||||
include("../../utils.cmake")
|
||||
include("../../cmake/utils.cmake")
|
||||
|
||||
|
||||
# Make sure raylib has been built
|
||||
|
|
|
@ -160,10 +160,10 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
# resources file contains windows exe icon
|
||||
# -Wl,--subsystem,windows hides the console window
|
||||
CFLAGS += $(RAYLIB_PATH)/src/resources -Wl,--subsystem,windows
|
||||
CFLAGS += $(RAYLIB_PATH)/src/raylib_icon -Wl,--subsystem,windows
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
CFLAGS += -no-pie -D_DEFAULT_SOURCE
|
||||
CFLAGS += -D_DEFAULT_SOURCE
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Setup the project and settings
|
||||
project(koala_seasons)
|
||||
|
||||
include("../../utils.cmake")
|
||||
include("../../cmake/utils.cmake")
|
||||
|
||||
|
||||
# Make sure raylib has been built
|
||||
|
|
|
@ -160,10 +160,10 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
# resources file contains windows exe icon
|
||||
# -Wl,--subsystem,windows hides the console window
|
||||
CFLAGS += $(RAYLIB_PATH)/src/resources -Wl,--subsystem,windows
|
||||
CFLAGS += $(RAYLIB_PATH)/src/raylib_icon -Wl,--subsystem,windows
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
CFLAGS += -no-pie -D_DEFAULT_SOURCE
|
||||
CFLAGS += -D_DEFAULT_SOURCE
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
|
|
|
@ -57,7 +57,7 @@ int main(void) {
|
|||
InitWindow(screenWidth, screenHeight, windowTitle);
|
||||
|
||||
// Load global data here (assets that must be available in all screens, i.e. fonts)
|
||||
font = LoadSpriteFont("resources/graphics/mainfont.png");
|
||||
font = LoadFont("resources/graphics/mainfont.png");
|
||||
|
||||
atlas01 = LoadTexture("resources/graphics/atlas01.png");
|
||||
atlas02 = LoadTexture("resources/graphics/atlas02.png");
|
||||
|
@ -114,7 +114,7 @@ int main(void) {
|
|||
|
||||
UnloadTexture(atlas01);
|
||||
UnloadTexture(atlas02);
|
||||
UnloadSpriteFont(font);
|
||||
UnloadFont(font);
|
||||
|
||||
UnloadShader(colorBlend); // Unload color overlay blending shader
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ typedef enum GameScreen { LOGO, TITLE, OPTIONS, GAMEPLAY, ENDING } GameScreen;
|
|||
GameScreen currentScreen;
|
||||
|
||||
// NOTE: This is all the data used in the game
|
||||
SpriteFont font;
|
||||
Font font;
|
||||
Shader colorBlend;
|
||||
Texture2D atlas01;
|
||||
Texture2D atlas02;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Setup the project and settings
|
||||
project(light_my_ritual)
|
||||
|
||||
include("../../utils.cmake")
|
||||
include("../../cmake/utils.cmake")
|
||||
|
||||
|
||||
# Make sure raylib has been built
|
||||
|
|
|
@ -160,10 +160,10 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
# resources file contains windows exe icon
|
||||
# -Wl,--subsystem,windows hides the console window
|
||||
CFLAGS += $(RAYLIB_PATH)/src/resources -Wl,--subsystem,windows
|
||||
CFLAGS += $(RAYLIB_PATH)/src/raylib_icon -Wl,--subsystem,windows
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
CFLAGS += -no-pie -D_DEFAULT_SOURCE
|
||||
CFLAGS += -D_DEFAULT_SOURCE
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
|
|
|
@ -68,7 +68,7 @@ int main(void)
|
|||
|
||||
UnloadImage(image); // Unload image from CPU memory (RAM)
|
||||
|
||||
font = LoadSpriteFont("resources/font_arcadian.png");
|
||||
font = LoadFont("resources/font_arcadian.png");
|
||||
//doors = LoadTexture("resources/textures/doors.png");
|
||||
//sndDoor = LoadSound("resources/audio/door.ogg");
|
||||
|
||||
|
@ -106,7 +106,7 @@ int main(void)
|
|||
}
|
||||
|
||||
// Unload all global loaded data (i.e. fonts) here!
|
||||
UnloadSpriteFont(font);
|
||||
UnloadFont(font);
|
||||
//UnloadSound(sndDoor);
|
||||
|
||||
UnloadMusicStream(music);
|
||||
|
|
|
@ -35,7 +35,7 @@ typedef enum GameScreen { LOGO_RL = 0, TITLE, GAMEPLAY } GameScreen;
|
|||
// Global Variables Definition
|
||||
//----------------------------------------------------------------------------------
|
||||
GameScreen currentScreen;
|
||||
SpriteFont font;
|
||||
Font font;
|
||||
|
||||
Color *lightsMap;
|
||||
int lightsMapWidth, lightsMapHeight;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Setup the project and settings
|
||||
project(skully_escape)
|
||||
|
||||
include("../../utils.cmake")
|
||||
include("../../cmake/utils.cmake")
|
||||
|
||||
|
||||
# Make sure raylib has been built
|
||||
|
|
|
@ -160,10 +160,10 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
# resources file contains windows exe icon
|
||||
# -Wl,--subsystem,windows hides the console window
|
||||
CFLAGS += $(RAYLIB_PATH)/src/resources -Wl,--subsystem,windows
|
||||
CFLAGS += $(RAYLIB_PATH)/src/raylib_icon -Wl,--subsystem,windows
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
CFLAGS += -no-pie -D_DEFAULT_SOURCE
|
||||
CFLAGS += -D_DEFAULT_SOURCE
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
|
|
|
@ -47,7 +47,7 @@ typedef struct Door {
|
|||
// Global Variables Definition
|
||||
//----------------------------------------------------------------------------------
|
||||
GameScreen currentScreen;
|
||||
SpriteFont font;
|
||||
Font font;
|
||||
|
||||
Texture2D doors;
|
||||
Sound sndDoor;
|
||||
|
|
|
@ -60,7 +60,7 @@ int main(void)
|
|||
music = LoadMusicStream("resources/audio/come_play_with_me.ogg");
|
||||
PlayMusicStream(music);
|
||||
|
||||
font = LoadSpriteFont("resources/textures/alagard.png");
|
||||
font = LoadFont("resources/textures/alagard.png");
|
||||
doors = LoadTexture("resources/textures/doors.png");
|
||||
sndDoor = LoadSound("resources/audio/door.ogg");
|
||||
sndScream = LoadSound("resources/audio/scream.ogg");
|
||||
|
@ -89,7 +89,7 @@ int main(void)
|
|||
|
||||
// Unload all global loaded data (i.e. fonts) here!
|
||||
UnloadPlayer();
|
||||
UnloadSpriteFont(font);
|
||||
UnloadFont(font);
|
||||
UnloadTexture(doors);
|
||||
UnloadSound(sndDoor);
|
||||
UnloadSound(sndScream);
|
||||
|
|
|
@ -160,10 +160,10 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
# resources file contains windows exe icon
|
||||
# -Wl,--subsystem,windows hides the console window
|
||||
CFLAGS += $(RAYLIB_PATH)/src/resources -Wl,--subsystem,windows
|
||||
CFLAGS += $(RAYLIB_PATH)/src/raylib_icon -Wl,--subsystem,windows
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
CFLAGS += -no-pie -D_DEFAULT_SOURCE
|
||||
CFLAGS += -D_DEFAULT_SOURCE
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
|
|
|
@ -68,7 +68,7 @@ static Mission *missions = NULL;
|
|||
|
||||
static char headline[MAX_TITLE_CHAR] = "\0";
|
||||
|
||||
SpriteFont fontNews;
|
||||
Font fontNews;
|
||||
|
||||
// String (const char *) replacement function
|
||||
static char *StringReplace(char *orig, char *rep, char *with);
|
||||
|
@ -121,11 +121,11 @@ void InitEndingScreen(void)
|
|||
|
||||
// Generate newspaper with title and subtitle
|
||||
Image imNewspaper = LoadImage("resources/textures/ending_newspaper.png");
|
||||
fontNews = LoadSpriteFontEx("resources/fonts/Lora-Bold.ttf", 32, 250, 0);
|
||||
fontNews = LoadFontEx("resources/fonts/Lora-Bold.ttf", 32, 250, 0);
|
||||
ImageDrawTextEx(&imNewspaper, (Vector2){ 50, 220 }, fontNews, headline, fontNews.baseSize, 0, DARKGRAY);
|
||||
|
||||
texNewspaper = LoadTextureFromImage(imNewspaper);
|
||||
//UnloadSpriteFont(fontNews);
|
||||
//UnloadFont(fontNews);
|
||||
UnloadImage(imNewspaper);
|
||||
}
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@ static int framesCounter;
|
|||
static int finishScreen;
|
||||
|
||||
static Texture2D texBackground;
|
||||
static SpriteFont fontMessage;
|
||||
static Font fontMessage;
|
||||
static Texture2D texWordsAtlas;
|
||||
static Texture2D texVignette;
|
||||
|
||||
|
@ -126,7 +126,7 @@ void InitGameplayScreen(void)
|
|||
framesCounter = 0;
|
||||
finishScreen = 0;
|
||||
|
||||
fontMessage = LoadSpriteFontEx("resources/fonts/traveling_typewriter.ttf", 30, 250, 0);
|
||||
fontMessage = LoadFontEx("resources/fonts/traveling_typewriter.ttf", 30, 250, 0);
|
||||
|
||||
texBackground = LoadTexture("resources/textures/message_background.png");
|
||||
texVignette = LoadTexture("resources/textures/message_vignette.png");
|
||||
|
|
|
@ -36,7 +36,7 @@ static int framesCounter;
|
|||
static int finishScreen;
|
||||
|
||||
static Texture2D texBackground;
|
||||
static SpriteFont fontTitle;
|
||||
static Font fontTitle;
|
||||
static Sound fxTyping;
|
||||
|
||||
static float titleSize;
|
||||
|
@ -71,7 +71,7 @@ void InitTitleScreen(void)
|
|||
|
||||
texBackground = LoadTexture("resources/textures/title_background.png");
|
||||
fxTyping = LoadSound("resources/audio/fx_typing.ogg");
|
||||
fontTitle = LoadSpriteFontEx("resources/fonts/mom_typewritter.ttf", 96, 0, 0);
|
||||
fontTitle = LoadFontEx("resources/fonts/mom_typewritter.ttf", 96, 0, 0);
|
||||
|
||||
titleSize = 44;
|
||||
transmissionPosition = (Vector2){519, 221};
|
||||
|
@ -148,7 +148,7 @@ void UnloadTitleScreen(void)
|
|||
{
|
||||
UnloadTexture(texBackground);
|
||||
UnloadSound(fxTyping);
|
||||
UnloadSpriteFont(fontTitle);
|
||||
UnloadFont(fontTitle);
|
||||
}
|
||||
|
||||
// Title Screen should finish?
|
||||
|
|
|
@ -76,7 +76,7 @@ Color textColorButton;
|
|||
int currentMission;
|
||||
int totalMissions;
|
||||
|
||||
SpriteFont fontMission;
|
||||
Font fontMission;
|
||||
|
||||
Word messageWords[MAX_MISSION_WORDS];
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ int main(void)
|
|||
SetMusicVolume(music, 1.0f);
|
||||
PlayMusicStream(music);
|
||||
|
||||
fontMission = LoadSpriteFontEx("resources/fonts/traveling_typewriter.ttf", 64, 250, 0);
|
||||
fontMission = LoadFontEx("resources/fonts/traveling_typewriter.ttf", 64, 250, 0);
|
||||
texButton = LoadTexture("resources/textures/title_ribbon.png");
|
||||
|
||||
// UI BUTTON
|
||||
|
@ -122,7 +122,7 @@ int main(void)
|
|||
UnloadMusicStream(music);
|
||||
UnloadSound(fxButton);
|
||||
|
||||
UnloadSpriteFont(fontMission);
|
||||
UnloadFont(fontMission);
|
||||
UnloadTexture(texButton);
|
||||
|
||||
CloseAudioDevice(); // Close audio context
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# Setup the project and settings
|
||||
project(wave_collector)
|
||||
|
||||
include("../../utils.cmake")
|
||||
include("../../cmake/utils.cmake")
|
||||
|
||||
|
||||
# Make sure raylib has been built
|
||||
|
|
|
@ -160,10 +160,10 @@ ifeq ($(PLATFORM),PLATFORM_DESKTOP)
|
|||
ifeq ($(PLATFORM_OS),WINDOWS)
|
||||
# resources file contains windows exe icon
|
||||
# -Wl,--subsystem,windows hides the console window
|
||||
CFLAGS += $(RAYLIB_PATH)/src/resources -Wl,--subsystem,windows
|
||||
CFLAGS += $(RAYLIB_PATH)/src/raylib_icon -Wl,--subsystem,windows
|
||||
endif
|
||||
ifeq ($(PLATFORM_OS),LINUX)
|
||||
CFLAGS += -no-pie -D_DEFAULT_SOURCE
|
||||
CFLAGS += -D_DEFAULT_SOURCE
|
||||
endif
|
||||
endif
|
||||
ifeq ($(PLATFORM),PLATFORM_RPI)
|
||||
|
|
|
@ -35,7 +35,7 @@ typedef enum GameScreen { LOGO = 0, TITLE, GAMEPLAY, ENDING } GameScreen;
|
|||
// Global Variables Definition
|
||||
//----------------------------------------------------------------------------------
|
||||
GameScreen currentScreen;
|
||||
SpriteFont font;
|
||||
Font font;
|
||||
Music music;
|
||||
int endingStatus; // 1 - Win, 2 - Lose
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ int main(int argc, char *argv[])
|
|||
// Global data loading (assets that must be available in all screens, i.e. fonts)
|
||||
InitAudioDevice();
|
||||
|
||||
font = LoadSpriteFont("resources/font.fnt");
|
||||
font = LoadFont("resources/font.fnt");
|
||||
music = LoadMusicStream("resources/audio/wave.ogg");
|
||||
|
||||
SetMusicVolume(music, 1.0f);
|
||||
|
@ -127,7 +127,7 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
// Unload all global loaded data (i.e. fonts) here!
|
||||
UnloadSpriteFont(font);
|
||||
UnloadFont(font);
|
||||
UnloadMusicStream(music);
|
||||
|
||||
CloseAudioDevice(); // Close audio context
|
||||
|
|
0
projects/CodeBlocks/HELPME
Normal file
0
projects/Geany/HELPME
Normal file
0
projects/KDevelop/HELPME
Normal file
19
projects/Notepad++/README.md
Normal file
|
@ -0,0 +1,19 @@
|
|||
### Notepad++ raylib config files
|
||||
|
||||
This folder includes some useful files to config Notepad++ for raylib.
|
||||
|
||||
#### raylib functions autocomplete - c_raylib.xml
|
||||
|
||||
Autocomplete information for Notepad++. The contents of this file should be copied inside raylib\Notepad++\plugins\APIs\c.xml file.
|
||||
|
||||
This file has been automatically generated using the provided tool: `raylib_npp_parser`
|
||||
|
||||
This simple tool basically parses raylib.h header for functions starting by RLAPI, extracts all required information and generates de Notepad++ autocomplete XML equivalent.
|
||||
|
||||
To use the tool, just drag and drop raylib.h over raylib_npp_parser program.
|
||||
|
||||
#### Notepad++ NppExec compilation scripts - npes_saved.txt
|
||||
|
||||
A series of scripts for Notepad++ NppExec plugin to compile raylib library and examples.
|
||||
|
||||
|
2067
projects/Notepad++/c_raylib.xml
Normal file
BIN
projects/Notepad++/npes_saved.txt
Normal file
2030
projects/Notepad++/raylib_npp_parser/raylib_npp.xml
Normal file
148
projects/Notepad++/raylib_npp_parser/raylib_npp_parser.c
Normal file
|
@ -0,0 +1,148 @@
|
|||
/**********************************************************************************************
|
||||
|
||||
raylib_npp_parser - raylib header parser to generate Notepad++ autocompletion data
|
||||
|
||||
This parser scans raylib.h for functions that start with RLAPI and generates Notepad++
|
||||
autocompletion xml equivalent for function and parameters.
|
||||
|
||||
Converts:
|
||||
RLAPI Color Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f
|
||||
|
||||
To:
|
||||
<KeyWord name="Fade" func="yes">
|
||||
<Overload retVal="Color" descr="Color fade-in or fade-out, alpha goes from 0.0 to 1.0">
|
||||
<Param name="Color color" />
|
||||
<Param name="float alpha" />
|
||||
</Overload>
|
||||
</KeyWord>
|
||||
|
||||
NOTE: Generated XML text should be copied inside raylib\Notepad++\plugins\APIs\c.xml
|
||||
|
||||
LICENSE: zlib/libpng
|
||||
|
||||
raylib is licensed under an unmodified zlib/libpng license, which is an OSI-certified,
|
||||
BSD-like license that allows static linking with closed source software:
|
||||
|
||||
Copyright (c) 2018 Ramon Santamaria (@raysan5)
|
||||
|
||||
**********************************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#define MAX_BUFFER_SIZE 512
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
if (argc > 1)
|
||||
{
|
||||
FILE *rFile = fopen(argv[1], "rt");
|
||||
FILE *rxmlFile = fopen("raylib_npp.xml", "wt");
|
||||
|
||||
if ((rFile == NULL) || (rxmlFile == NULL))
|
||||
{
|
||||
printf("File could not be opened.\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *buffer = (char *)calloc(MAX_BUFFER_SIZE, 1);
|
||||
int count = 0;
|
||||
|
||||
while (!feof(rFile))
|
||||
{
|
||||
// Read one full line
|
||||
fgets(buffer, MAX_BUFFER_SIZE, rFile);
|
||||
|
||||
if (buffer[0] == '/') fprintf(rxmlFile, " <!--%.*s -->\n", strlen(buffer) - 3, buffer + 2);
|
||||
else if (buffer[0] == '\n') fprintf(rxmlFile, "%s", buffer); // Direct copy of code comments
|
||||
else if (strncmp(buffer, "RLAPI", 5) == 0) // raylib function declaration
|
||||
{
|
||||
char funcType[64];
|
||||
char funcTypeAux[64];
|
||||
char funcName[64];
|
||||
char funcDesc[256];
|
||||
|
||||
char params[128];
|
||||
char paramType[8][16];
|
||||
char paramName[8][32];
|
||||
|
||||
int index = 0;
|
||||
char *ptr = NULL;
|
||||
|
||||
sscanf(buffer, "RLAPI %s %[^(]s", funcType, funcName);
|
||||
|
||||
if (strcmp(funcType, "const") == 0)
|
||||
{
|
||||
sscanf(buffer, "RLAPI %s %s %[^(]s", funcType, funcTypeAux, funcName);
|
||||
strcat(funcType, " ");
|
||||
strcat(funcType, funcTypeAux);
|
||||
}
|
||||
|
||||
ptr = strchr(buffer, '/');
|
||||
index = (int)(ptr - buffer);
|
||||
|
||||
sscanf(buffer + index, "%[^\n]s", funcDesc); // Read function comment after declaration
|
||||
|
||||
ptr = strchr(buffer, '(');
|
||||
|
||||
if (ptr != NULL) index = (int)(ptr - buffer);
|
||||
else printf("Character not found!\n");
|
||||
|
||||
sscanf(buffer + (index + 1), "%[^)]s", params); // Read what's inside '(' and ')'
|
||||
|
||||
// Scan params string for number of func params, type and name
|
||||
char *paramPtr[16]; // Allocate 16 pointers for possible parameters
|
||||
int paramsCount = 0;
|
||||
paramPtr[paramsCount] = strtok(params, ",");
|
||||
|
||||
if ((funcName[0] == '*') && (funcName[1] == '*')) fprintf(rxmlFile, " <KeyWord name=\"%s\" func=\"yes\">\n", funcName + 2);
|
||||
else if (funcName[0] == '*') fprintf(rxmlFile, " <KeyWord name=\"%s\" func=\"yes\">\n", funcName + 1);
|
||||
else fprintf(rxmlFile, " <KeyWord name=\"%s\" func=\"yes\">\n", funcName);
|
||||
|
||||
fprintf(rxmlFile, " <Overload retVal=\"%s\" descr=\"%s\">", funcType, funcDesc + 3);
|
||||
|
||||
bool paramsVoid = false;
|
||||
|
||||
char paramConst[8][16];
|
||||
|
||||
while (paramPtr[paramsCount] != NULL)
|
||||
{
|
||||
sscanf(paramPtr[paramsCount], "%s %s\n", paramType[paramsCount], paramName[paramsCount]);
|
||||
|
||||
if (strcmp(paramType[paramsCount], "void") == 0)
|
||||
{
|
||||
paramsVoid = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if ((strcmp(paramType[paramsCount], "const") == 0) || (strcmp(paramType[paramsCount], "unsigned") == 0))
|
||||
{
|
||||
sscanf(paramPtr[paramsCount], "%s %s %s\n", paramConst[paramsCount], paramType[paramsCount], paramName[paramsCount]);
|
||||
fprintf(rxmlFile, "\n <Param name=\"%s %s %s\" />", paramConst[paramsCount], paramType[paramsCount], paramName[paramsCount]);
|
||||
}
|
||||
else if (strcmp(paramType[paramsCount], "...") == 0) fprintf(rxmlFile, "\n <Param name=\"...\" />");
|
||||
else fprintf(rxmlFile, "\n <Param name=\"%s %s\" />", paramType[paramsCount], paramName[paramsCount]);
|
||||
|
||||
paramsCount++;
|
||||
paramPtr[paramsCount] = strtok(NULL, ",");
|
||||
}
|
||||
|
||||
fprintf(rxmlFile, "%s</Overload>\n", paramsVoid ? "" : "\n ");
|
||||
fprintf(rxmlFile, " </KeyWord>\n");
|
||||
|
||||
count++;
|
||||
printf("Function processed %02i: %s\n", count, funcName);
|
||||
|
||||
memset(buffer, 0, MAX_BUFFER_SIZE);
|
||||
}
|
||||
}
|
||||
|
||||
free(buffer);
|
||||
fclose(rFile);
|
||||
fclose(rxmlFile);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
459
projects/Notepad++/raylib_npp_parser/raylib_to_parse.h
Normal file
|
@ -0,0 +1,459 @@
|
|||
//------------------------------------------------------------------------------------
|
||||
// Window and Graphics Device Functions (Module: core)
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
// Window-related functions
|
||||
RLAPI void InitWindow(int width, int height, const char *title); // Initialize window and OpenGL context
|
||||
RLAPI void CloseWindow(void); // Close window and unload OpenGL context
|
||||
RLAPI bool IsWindowReady(void); // Check if window has been initialized successfully
|
||||
RLAPI bool WindowShouldClose(void); // Check if KEY_ESCAPE pressed or Close icon pressed
|
||||
RLAPI bool IsWindowMinimized(void); // Check if window has been minimized (or lost focus)
|
||||
RLAPI void ToggleFullscreen(void); // Toggle fullscreen mode (only PLATFORM_DESKTOP)
|
||||
RLAPI void SetWindowIcon(Image image); // Set icon for window (only PLATFORM_DESKTOP)
|
||||
RLAPI void SetWindowTitle(const char *title); // Set title for window (only PLATFORM_DESKTOP)
|
||||
RLAPI void SetWindowPosition(int x, int y); // Set window position on screen (only PLATFORM_DESKTOP)
|
||||
RLAPI void SetWindowMonitor(int monitor); // Set monitor for the current window (fullscreen mode)
|
||||
RLAPI void SetWindowMinSize(int width, int height); // Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)
|
||||
RLAPI void SetWindowSize(int width, int height); // Set window dimensions
|
||||
RLAPI int GetScreenWidth(void); // Get current screen width
|
||||
RLAPI int GetScreenHeight(void); // Get current screen height
|
||||
|
||||
// Cursor-related functions
|
||||
RLAPI void ShowCursor(void); // Shows cursor
|
||||
RLAPI void HideCursor(void); // Hides cursor
|
||||
RLAPI bool IsCursorHidden(void); // Check if cursor is not visible
|
||||
RLAPI void EnableCursor(void); // Enables cursor (unlock cursor)
|
||||
RLAPI void DisableCursor(void); // Disables cursor (lock cursor)
|
||||
|
||||
// Drawing-related functions
|
||||
RLAPI void ClearBackground(Color color); // Set background color (framebuffer clear color)
|
||||
RLAPI void BeginDrawing(void); // Setup canvas (framebuffer) to start drawing
|
||||
RLAPI void EndDrawing(void); // End canvas drawing and swap buffers (double buffering)
|
||||
RLAPI void BeginMode2D(Camera2D camera); // Initialize 2D mode with custom camera (2D)
|
||||
RLAPI void EndMode2D(void); // Ends 2D mode with custom camera
|
||||
RLAPI void BeginMode3D(Camera3D camera); // Initializes 3D mode with custom camera (3D)
|
||||
RLAPI void EndMode3D(void); // Ends 3D mode and returns to default 2D orthographic mode
|
||||
RLAPI void BeginTextureMode(RenderTexture2D target); // Initializes render texture for drawing
|
||||
RLAPI void EndTextureMode(void); // Ends drawing to render texture
|
||||
|
||||
// Screen-space-related functions
|
||||
RLAPI Ray GetMouseRay(Vector2 mousePosition, Camera camera); // Returns a ray trace from mouse position
|
||||
RLAPI Vector2 GetWorldToScreen(Vector3 position, Camera camera); // Returns the screen space position for a 3d world space position
|
||||
RLAPI Matrix GetCameraMatrix(Camera camera); // Returns camera transform matrix (view matrix)
|
||||
|
||||
// Timming-related functions
|
||||
RLAPI void SetTargetFPS(int fps); // Set target FPS (maximum)
|
||||
RLAPI int GetFPS(void); // Returns current FPS
|
||||
RLAPI float GetFrameTime(void); // Returns time in seconds for last frame drawn
|
||||
RLAPI double GetTime(void); // Returns elapsed time in seconds since InitWindow()
|
||||
|
||||
// Color-related functions
|
||||
RLAPI int ColorToInt(Color color); // Returns hexadecimal value for a Color
|
||||
RLAPI Vector4 ColorNormalize(Color color); // Returns color normalized as float [0..1]
|
||||
RLAPI Vector3 ColorToHSV(Color color); // Returns HSV values for a Color
|
||||
RLAPI Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value
|
||||
RLAPI Color Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f
|
||||
|
||||
// Misc. functions
|
||||
RLAPI void ShowLogo(void); // Activate raylib logo at startup (can be done with flags)
|
||||
RLAPI void SetConfigFlags(unsigned char flags); // Setup window configuration flags (view FLAGS)
|
||||
RLAPI void SetTraceLog(unsigned char types); // Enable trace log message types (bit flags based)
|
||||
RLAPI void TraceLog(int logType, const char *text, ...); // Show trace log messages (LOG_INFO, LOG_WARNING, LOG_ERROR, LOG_DEBUG)
|
||||
RLAPI void TakeScreenshot(const char *fileName); // Takes a screenshot of current screen (saved a .png)
|
||||
RLAPI int GetRandomValue(int min, int max); // Returns a random value between min and max (both included)
|
||||
|
||||
// Files management functions
|
||||
RLAPI bool IsFileExtension(const char *fileName, const char *ext);// Check file extension
|
||||
RLAPI const char *GetExtension(const char *fileName); // Get pointer to extension for a filename string
|
||||
RLAPI const char *GetFileName(const char *filePath); // Get pointer to filename for a path string
|
||||
RLAPI const char *GetDirectoryPath(const char *fileName); // Get full path for a given fileName (uses static string)
|
||||
RLAPI const char *GetWorkingDirectory(void); // Get current working directory (uses static string)
|
||||
RLAPI bool ChangeDirectory(const char *dir); // Change working directory, returns true if success
|
||||
RLAPI bool IsFileDropped(void); // Check if a file has been dropped into window
|
||||
RLAPI char **GetDroppedFiles(int *count); // Get dropped files names
|
||||
RLAPI void ClearDroppedFiles(void); // Clear dropped files paths buffer
|
||||
|
||||
// Persistent storage management
|
||||
RLAPI void StorageSaveValue(int position, int value); // Save integer value to storage file (to defined position)
|
||||
RLAPI int StorageLoadValue(int position); // Load integer value from storage file (from defined position)
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Input Handling Functions (Module: core)
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
// Input-related functions: keyboard
|
||||
RLAPI bool IsKeyPressed(int key); // Detect if a key has been pressed once
|
||||
RLAPI bool IsKeyDown(int key); // Detect if a key is being pressed
|
||||
RLAPI bool IsKeyReleased(int key); // Detect if a key has been released once
|
||||
RLAPI bool IsKeyUp(int key); // Detect if a key is NOT being pressed
|
||||
RLAPI int GetKeyPressed(void); // Get latest key pressed
|
||||
RLAPI void SetExitKey(int key); // Set a custom key to exit program (default is ESC)
|
||||
|
||||
// Input-related functions: gamepads
|
||||
RLAPI bool IsGamepadAvailable(int gamepad); // Detect if a gamepad is available
|
||||
RLAPI bool IsGamepadName(int gamepad, const char *name); // Check gamepad name (if available)
|
||||
RLAPI const char *GetGamepadName(int gamepad); // Return gamepad internal name id
|
||||
RLAPI bool IsGamepadButtonPressed(int gamepad, int button); // Detect if a gamepad button has been pressed once
|
||||
RLAPI bool IsGamepadButtonDown(int gamepad, int button); // Detect if a gamepad button is being pressed
|
||||
RLAPI bool IsGamepadButtonReleased(int gamepad, int button); // Detect if a gamepad button has been released once
|
||||
RLAPI bool IsGamepadButtonUp(int gamepad, int button); // Detect if a gamepad button is NOT being pressed
|
||||
RLAPI int GetGamepadButtonPressed(void); // Get the last gamepad button pressed
|
||||
RLAPI int GetGamepadAxisCount(int gamepad); // Return gamepad axis count for a gamepad
|
||||
RLAPI float GetGamepadAxisMovement(int gamepad, int axis); // Return axis movement value for a gamepad axis
|
||||
|
||||
// Input-related functions: mouse
|
||||
RLAPI bool IsMouseButtonPressed(int button); // Detect if a mouse button has been pressed once
|
||||
RLAPI bool IsMouseButtonDown(int button); // Detect if a mouse button is being pressed
|
||||
RLAPI bool IsMouseButtonReleased(int button); // Detect if a mouse button has been released once
|
||||
RLAPI bool IsMouseButtonUp(int button); // Detect if a mouse button is NOT being pressed
|
||||
RLAPI int GetMouseX(void); // Returns mouse position X
|
||||
RLAPI int GetMouseY(void); // Returns mouse position Y
|
||||
RLAPI Vector2 GetMousePosition(void); // Returns mouse position XY
|
||||
RLAPI void SetMousePosition(Vector2 position); // Set mouse position XY
|
||||
RLAPI void SetMouseScale(float scale); // Set mouse scaling
|
||||
RLAPI int GetMouseWheelMove(void); // Returns mouse wheel movement Y
|
||||
|
||||
// Input-related functions: touch
|
||||
RLAPI int GetTouchX(void); // Returns touch position X for touch point 0 (relative to screen size)
|
||||
RLAPI int GetTouchY(void); // Returns touch position Y for touch point 0 (relative to screen size)
|
||||
RLAPI Vector2 GetTouchPosition(int index); // Returns touch position XY for a touch point index (relative to screen size)
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Gestures and Touch Handling Functions (Module: gestures)
|
||||
//------------------------------------------------------------------------------------
|
||||
RLAPI void SetGesturesEnabled(unsigned int gestureFlags); // Enable a set of gestures using flags
|
||||
RLAPI bool IsGestureDetected(int gesture); // Check if a gesture have been detected
|
||||
RLAPI int GetGestureDetected(void); // Get latest detected gesture
|
||||
RLAPI int GetTouchPointsCount(void); // Get touch points count
|
||||
RLAPI float GetGestureHoldDuration(void); // Get gesture hold time in milliseconds
|
||||
RLAPI Vector2 GetGestureDragVector(void); // Get gesture drag vector
|
||||
RLAPI float GetGestureDragAngle(void); // Get gesture drag angle
|
||||
RLAPI Vector2 GetGesturePinchVector(void); // Get gesture pinch delta
|
||||
RLAPI float GetGesturePinchAngle(void); // Get gesture pinch angle
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Camera System Functions (Module: camera)
|
||||
//------------------------------------------------------------------------------------
|
||||
RLAPI void SetCameraMode(Camera camera, int mode); // Set camera mode (multiple camera modes available)
|
||||
RLAPI void UpdateCamera(Camera *camera); // Update camera position for selected mode
|
||||
|
||||
RLAPI void SetCameraPanControl(int panKey); // Set camera pan key to combine with mouse movement (free camera)
|
||||
RLAPI void SetCameraAltControl(int altKey); // Set camera alt key to combine with mouse movement (free camera)
|
||||
RLAPI void SetCameraSmoothZoomControl(int szKey); // Set camera smooth zoom key to combine with mouse (free camera)
|
||||
RLAPI void SetCameraMoveControls(int frontKey, int backKey, int rightKey, int leftKey, int upKey, int downKey); // Set camera move controls (1st person and 3rd person cameras)
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Basic Shapes Drawing Functions (Module: shapes)
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
// Basic shapes drawing functions
|
||||
RLAPI void DrawPixel(int posX, int posY, Color color); // Draw a pixel
|
||||
RLAPI void DrawPixelV(Vector2 position, Color color); // Draw a pixel (Vector version)
|
||||
RLAPI void DrawLine(int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw a line
|
||||
RLAPI void DrawLineV(Vector2 startPos, Vector2 endPos, Color color); // Draw a line (Vector version)
|
||||
RLAPI void DrawLineEx(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line defining thickness
|
||||
RLAPI void DrawLineBezier(Vector2 startPos, Vector2 endPos, float thick, Color color); // Draw a line using cubic-bezier curves in-out
|
||||
RLAPI void DrawCircle(int centerX, int centerY, float radius, Color color); // Draw a color-filled circle
|
||||
RLAPI void DrawCircleGradient(int centerX, int centerY, float radius, Color color1, Color color2); // Draw a gradient-filled circle
|
||||
RLAPI void DrawCircleV(Vector2 center, float radius, Color color); // Draw a color-filled circle (Vector version)
|
||||
RLAPI void DrawCircleLines(int centerX, int centerY, float radius, Color color); // Draw circle outline
|
||||
RLAPI void DrawRectangle(int posX, int posY, int width, int height, Color color); // Draw a color-filled rectangle
|
||||
RLAPI void DrawRectangleV(Vector2 position, Vector2 size, Color color); // Draw a color-filled rectangle (Vector version)
|
||||
RLAPI void DrawRectangleRec(Rectangle rec, Color color); // Draw a color-filled rectangle
|
||||
RLAPI void DrawRectanglePro(Rectangle rec, Vector2 origin, float rotation, Color color); // Draw a color-filled rectangle with pro parameters
|
||||
RLAPI void DrawRectangleGradientV(int posX, int posY, int width, int height, Color color1, Color color2);// Draw a vertical-gradient-filled rectangle
|
||||
RLAPI void DrawRectangleGradientH(int posX, int posY, int width, int height, Color color1, Color color2);// Draw a horizontal-gradient-filled rectangle
|
||||
RLAPI void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4); // Draw a gradient-filled rectangle with custom vertex colors
|
||||
RLAPI void DrawRectangleLines(int posX, int posY, int width, int height, Color color); // Draw rectangle outline
|
||||
RLAPI void DrawRectangleLinesEx(Rectangle rec, int lineThick, Color color); // Draw rectangle outline with extended parameters
|
||||
RLAPI void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw a color-filled triangle
|
||||
RLAPI void DrawTriangleLines(Vector2 v1, Vector2 v2, Vector2 v3, Color color); // Draw triangle outline
|
||||
RLAPI void DrawPoly(Vector2 center, int sides, float radius, float rotation, Color color); // Draw a regular polygon (Vector version)
|
||||
RLAPI void DrawPolyEx(Vector2 *points, int numPoints, Color color); // Draw a closed polygon defined by points
|
||||
RLAPI void DrawPolyExLines(Vector2 *points, int numPoints, Color color); // Draw polygon lines
|
||||
|
||||
// Basic shapes collision detection functions
|
||||
RLAPI bool CheckCollisionRecs(Rectangle rec1, Rectangle rec2); // Check collision between two rectangles
|
||||
RLAPI bool CheckCollisionCircles(Vector2 center1, float radius1, Vector2 center2, float radius2); // Check collision between two circles
|
||||
RLAPI bool CheckCollisionCircleRec(Vector2 center, float radius, Rectangle rec); // Check collision between circle and rectangle
|
||||
RLAPI Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision
|
||||
RLAPI bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle
|
||||
RLAPI bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle
|
||||
RLAPI bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); // Check if point is inside a triangle
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Texture Loading and Drawing Functions (Module: textures)
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
// Image/Texture2D data loading/unloading/saving functions
|
||||
RLAPI Image LoadImage(const char *fileName); // Load image from file into CPU memory (RAM)
|
||||
RLAPI Image LoadImageEx(Color *pixels, int width, int height); // Load image from Color array data (RGBA - 32bit)
|
||||
RLAPI Image LoadImagePro(void *data, int width, int height, int format); // Load image from raw data with parameters
|
||||
RLAPI Image LoadImageRaw(const char *fileName, int width, int height, int format, int headerSize); // Load image from RAW file data
|
||||
RLAPI void ExportImage(const char *fileName, Image image); // Export image as a PNG file
|
||||
RLAPI Texture2D LoadTexture(const char *fileName); // Load texture from file into GPU memory (VRAM)
|
||||
RLAPI Texture2D LoadTextureFromImage(Image image); // Load texture from image data
|
||||
RLAPI RenderTexture2D LoadRenderTexture(int width, int height); // Load texture for rendering (framebuffer)
|
||||
RLAPI void UnloadImage(Image image); // Unload image from CPU memory (RAM)
|
||||
RLAPI void UnloadTexture(Texture2D texture); // Unload texture from GPU memory (VRAM)
|
||||
RLAPI void UnloadRenderTexture(RenderTexture2D target); // Unload render texture from GPU memory (VRAM)
|
||||
RLAPI Color *GetImageData(Image image); // Get pixel data from image as a Color struct array
|
||||
RLAPI int GetPixelDataSize(int width, int height, int format); // Get pixel data size in bytes (image or texture)
|
||||
RLAPI Image GetTextureData(Texture2D texture); // Get pixel data from GPU texture and return an Image
|
||||
RLAPI void UpdateTexture(Texture2D texture, const void *pixels); // Update GPU texture with new data
|
||||
|
||||
// Image manipulation functions
|
||||
RLAPI Image ImageCopy(Image image); // Create an image duplicate (useful for transformations)
|
||||
RLAPI void ImageToPOT(Image *image, Color fillColor); // Convert image to POT (power-of-two)
|
||||
RLAPI void ImageFormat(Image *image, int newFormat); // Convert image data to desired format
|
||||
RLAPI void ImageAlphaMask(Image *image, Image alphaMask); // Apply alpha mask to image
|
||||
RLAPI void ImageAlphaClear(Image *image, Color color, float threshold); // Clear alpha channel to desired color
|
||||
RLAPI void ImageAlphaCrop(Image *image, float threshold); // Crop image depending on alpha value
|
||||
RLAPI void ImageAlphaPremultiply(Image *image); // Premultiply alpha channel
|
||||
RLAPI void ImageCrop(Image *image, Rectangle crop); // Crop an image to a defined rectangle
|
||||
RLAPI void ImageResize(Image *image, int newWidth, int newHeight); // Resize and image (bilinear filtering)
|
||||
RLAPI void ImageResizeNN(Image *image,int newWidth,int newHeight); // Resize and image (Nearest-Neighbor scaling algorithm)
|
||||
RLAPI void ImageMipmaps(Image *image); // Generate all mipmap levels for a provided image
|
||||
RLAPI void ImageDither(Image *image, int rBpp, int gBpp, int bBpp, int aBpp); // Dither image data to 16bpp or lower (Floyd-Steinberg dithering)
|
||||
RLAPI Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font)
|
||||
RLAPI Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Color tint); // Create an image from text (custom sprite font)
|
||||
RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec); // Draw a source image within a destination image
|
||||
RLAPI void ImageDrawRectangle(Image *dst, Vector2 position, Rectangle rec, Color color); // Draw rectangle within an image
|
||||
RLAPI void ImageDrawText(Image *dst, Vector2 position, const char *text, int fontSize, Color color); // Draw text (default font) within an image (destination)
|
||||
RLAPI void ImageDrawTextEx(Image *dst, Vector2 position, Font font, const char *text, float fontSize, float spacing, Color color); // Draw text (custom sprite font) within an image (destination)
|
||||
RLAPI void ImageFlipVertical(Image *image); // Flip image vertically
|
||||
RLAPI void ImageFlipHorizontal(Image *image); // Flip image horizontally
|
||||
RLAPI void ImageColorTint(Image *image, Color color); // Modify image color: tint
|
||||
RLAPI void ImageColorInvert(Image *image); // Modify image color: invert
|
||||
RLAPI void ImageColorGrayscale(Image *image); // Modify image color: grayscale
|
||||
RLAPI void ImageColorContrast(Image *image, float contrast); // Modify image color: contrast (-100 to 100)
|
||||
RLAPI void ImageColorBrightness(Image *image, int brightness); // Modify image color: brightness (-255 to 255)
|
||||
|
||||
// Image generation functions
|
||||
RLAPI Image GenImageColor(int width, int height, Color color); // Generate image: plain color
|
||||
RLAPI Image GenImageGradientV(int width, int height, Color top, Color bottom); // Generate image: vertical gradient
|
||||
RLAPI Image GenImageGradientH(int width, int height, Color left, Color right); // Generate image: horizontal gradient
|
||||
RLAPI Image GenImageGradientRadial(int width, int height, float density, Color inner, Color outer); // Generate image: radial gradient
|
||||
RLAPI Image GenImageChecked(int width, int height, int checksX, int checksY, Color col1, Color col2); // Generate image: checked
|
||||
RLAPI Image GenImageWhiteNoise(int width, int height, float factor); // Generate image: white noise
|
||||
RLAPI Image GenImagePerlinNoise(int width, int height, int offsetX, int offsetY, float scale); // Generate image: perlin noise
|
||||
RLAPI Image GenImageCellular(int width, int height, int tileSize); // Generate image: cellular algorithm. Bigger tileSize means bigger cells
|
||||
|
||||
// Texture2D configuration functions
|
||||
RLAPI void GenTextureMipmaps(Texture2D *texture); // Generate GPU mipmaps for a texture
|
||||
RLAPI void SetTextureFilter(Texture2D texture, int filterMode); // Set texture scaling filter mode
|
||||
RLAPI void SetTextureWrap(Texture2D texture, int wrapMode); // Set texture wrapping mode
|
||||
|
||||
// Texture2D drawing functions
|
||||
RLAPI void DrawTexture(Texture2D texture, int posX, int posY, Color tint); // Draw a Texture2D
|
||||
RLAPI void DrawTextureV(Texture2D texture, Vector2 position, Color tint); // Draw a Texture2D with position defined as Vector2
|
||||
RLAPI void DrawTextureEx(Texture2D texture, Vector2 position, float rotation, float scale, Color tint); // Draw a Texture2D with extended parameters
|
||||
RLAPI void DrawTextureRec(Texture2D texture, Rectangle sourceRec, Vector2 position, Color tint); // Draw a part of a texture defined by a rectangle
|
||||
RLAPI void DrawTexturePro(Texture2D texture, Rectangle sourceRec, Rectangle destRec, Vector2 origin, float rotation, Color tint); // Draw a part of a texture defined by a rectangle with 'pro' parameters
|
||||
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Font Loading and Text Drawing Functions (Module: text)
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
// Font loading/unloading functions
|
||||
RLAPI Font GetDefaultFont(void); // Get the default Font
|
||||
RLAPI Font LoadFont(const char *fileName); // Load Font from file into GPU memory (VRAM)
|
||||
RLAPI Font LoadFontEx(const char *fileName, int fontSize, int charsCount, int *fontChars); // Load Font from file with extended parameters
|
||||
RLAPI void UnloadFont(Font font); // Unload Font from GPU memory (VRAM)
|
||||
|
||||
// Text drawing functions
|
||||
RLAPI void DrawFPS(int posX, int posY); // Shows current FPS
|
||||
RLAPI void DrawText(const char *text, int posX, int posY, int fontSize, Color color); // Draw text (using default font)
|
||||
RLAPI void DrawTextEx(Font font, const char* text, Vector2 position, float fontSize, float spacing, Color tint); // Draw text using Font and additional parameters
|
||||
|
||||
// Text misc. functions
|
||||
RLAPI int MeasureText(const char *text, int fontSize); // Measure string width for default font
|
||||
RLAPI Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing); // Measure string size for Font
|
||||
RLAPI const char *FormatText(const char *text, ...); // Formatting of text with variables to 'embed'
|
||||
RLAPI const char *SubText(const char *text, int position, int length); // Get a piece of a text string
|
||||
RLAPI int GetGlyphIndex(Font font, int character); // Returns index position for a unicode character on sprite font
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Basic 3d Shapes Drawing Functions (Module: models)
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
// Basic geometric 3D shapes drawing functions
|
||||
RLAPI void DrawLine3D(Vector3 startPos, Vector3 endPos, Color color); // Draw a line in 3D world space
|
||||
RLAPI void DrawCircle3D(Vector3 center, float radius, Vector3 rotationAxis, float rotationAngle, Color color); // Draw a circle in 3D world space
|
||||
RLAPI void DrawCube(Vector3 position, float width, float height, float length, Color color); // Draw cube
|
||||
RLAPI void DrawCubeV(Vector3 position, Vector3 size, Color color); // Draw cube (Vector version)
|
||||
RLAPI void DrawCubeWires(Vector3 position, float width, float height, float length, Color color); // Draw cube wires
|
||||
RLAPI void DrawCubeTexture(Texture2D texture, Vector3 position, float width, float height, float length, Color color); // Draw cube textured
|
||||
RLAPI void DrawSphere(Vector3 centerPos, float radius, Color color); // Draw sphere
|
||||
RLAPI void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere with extended parameters
|
||||
RLAPI void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere wires
|
||||
RLAPI void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone
|
||||
RLAPI void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone wires
|
||||
RLAPI void DrawPlane(Vector3 centerPos, Vector2 size, Color color); // Draw a plane XZ
|
||||
RLAPI void DrawRay(Ray ray, Color color); // Draw a ray line
|
||||
RLAPI void DrawGrid(int slices, float spacing); // Draw a grid (centered at (0, 0, 0))
|
||||
RLAPI void DrawGizmo(Vector3 position); // Draw simple gizmo
|
||||
//DrawTorus(), DrawTeapot() could be useful?
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Model 3d Loading and Drawing Functions (Module: models)
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
// Model loading/unloading functions
|
||||
RLAPI Model LoadModel(const char *fileName); // Load model from files (mesh and material)
|
||||
RLAPI Model LoadModelFromMesh(Mesh mesh); // Load model from generated mesh
|
||||
RLAPI void UnloadModel(Model model); // Unload model from memory (RAM and/or VRAM)
|
||||
|
||||
// Mesh loading/unloading functions
|
||||
RLAPI Mesh LoadMesh(const char *fileName); // Load mesh from file
|
||||
RLAPI void UnloadMesh(Mesh *mesh); // Unload mesh from memory (RAM and/or VRAM)
|
||||
RLAPI void ExportMesh(const char *fileName, Mesh mesh); // Export mesh as an OBJ file
|
||||
|
||||
// Mesh manipulation functions
|
||||
RLAPI BoundingBox MeshBoundingBox(Mesh mesh); // Compute mesh bounding box limits
|
||||
RLAPI void MeshTangents(Mesh *mesh); // Compute mesh tangents
|
||||
RLAPI void MeshBinormals(Mesh *mesh); // Compute mesh binormals
|
||||
|
||||
// Mesh generation functions
|
||||
RLAPI Mesh GenMeshPlane(float width, float length, int resX, int resZ); // Generate plane mesh (with subdivisions)
|
||||
RLAPI Mesh GenMeshCube(float width, float height, float length); // Generate cuboid mesh
|
||||
RLAPI Mesh GenMeshSphere(float radius, int rings, int slices); // Generate sphere mesh (standard sphere)
|
||||
RLAPI Mesh GenMeshHemiSphere(float radius, int rings, int slices); // Generate half-sphere mesh (no bottom cap)
|
||||
RLAPI Mesh GenMeshCylinder(float radius, float height, int slices); // Generate cylinder mesh
|
||||
RLAPI Mesh GenMeshTorus(float radius, float size, int radSeg, int sides); // Generate torus mesh
|
||||
RLAPI Mesh GenMeshKnot(float radius, float size, int radSeg, int sides); // Generate trefoil knot mesh
|
||||
RLAPI Mesh GenMeshHeightmap(Image heightmap, Vector3 size); // Generate heightmap mesh from image data
|
||||
RLAPI Mesh GenMeshCubicmap(Image cubicmap, Vector3 cubeSize); // Generate cubes-based map mesh from image data
|
||||
|
||||
// Material loading/unloading functions
|
||||
RLAPI Material LoadMaterial(const char *fileName); // Load material from file
|
||||
RLAPI Material LoadMaterialDefault(void); // Load default material (Supports: DIFFUSE, SPECULAR, NORMAL maps)
|
||||
RLAPI void UnloadMaterial(Material material); // Unload material from GPU memory (VRAM)
|
||||
|
||||
// Model drawing functions
|
||||
RLAPI void DrawModel(Model model, Vector3 position, float scale, Color tint); // Draw a model (with texture if set)
|
||||
RLAPI void DrawModelEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model with extended parameters
|
||||
RLAPI void DrawModelWires(Model model, Vector3 position, float scale, Color tint); // Draw a model wires (with texture if set)
|
||||
RLAPI void DrawModelWiresEx(Model model, Vector3 position, Vector3 rotationAxis, float rotationAngle, Vector3 scale, Color tint); // Draw a model wires (with texture if set) with extended parameters
|
||||
RLAPI void DrawBoundingBox(BoundingBox box, Color color); // Draw bounding box (wires)
|
||||
RLAPI void DrawBillboard(Camera camera, Texture2D texture, Vector3 center, float size, Color tint); // Draw a billboard texture
|
||||
RLAPI void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle sourceRec, Vector3 center, float size, Color tint); // Draw a billboard texture defined by sourceRec
|
||||
|
||||
// Collision detection functions
|
||||
RLAPI bool CheckCollisionSpheres(Vector3 centerA, float radiusA, Vector3 centerB, float radiusB); // Detect collision between two spheres
|
||||
RLAPI bool CheckCollisionBoxes(BoundingBox box1, BoundingBox box2); // Detect collision between two bounding boxes
|
||||
RLAPI bool CheckCollisionBoxSphere(BoundingBox box, Vector3 centerSphere, float radiusSphere); // Detect collision between box and sphere
|
||||
RLAPI bool CheckCollisionRaySphere(Ray ray, Vector3 spherePosition, float sphereRadius); // Detect collision between ray and sphere
|
||||
RLAPI bool CheckCollisionRaySphereEx(Ray ray, Vector3 spherePosition, float sphereRadius, Vector3 *collisionPoint); // Detect collision between ray and sphere, returns collision point
|
||||
RLAPI bool CheckCollisionRayBox(Ray ray, BoundingBox box); // Detect collision between ray and box
|
||||
RLAPI RayHitInfo GetCollisionRayModel(Ray ray, Model *model); // Get collision info between ray and model
|
||||
RLAPI RayHitInfo GetCollisionRayTriangle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3); // Get collision info between ray and triangle
|
||||
RLAPI RayHitInfo GetCollisionRayGround(Ray ray, float groundHeight); // Get collision info between ray and ground plane (Y-normal plane)
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Shaders System Functions (Module: rlgl)
|
||||
// NOTE: This functions are useless when using OpenGL 1.1
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
// Shader loading/unloading functions
|
||||
RLAPI char *LoadText(const char *fileName); // Load chars array from text file
|
||||
RLAPI Shader LoadShader(const char *vsFileName, const char *fsFileName); // Load shader from files and bind default locations
|
||||
RLAPI Shader LoadShaderCode(char *vsCode, char *fsCode); // Load shader from code strings and bind default locations
|
||||
RLAPI void UnloadShader(Shader shader); // Unload shader from GPU memory (VRAM)
|
||||
|
||||
RLAPI Shader GetShaderDefault(void); // Get default shader
|
||||
RLAPI Texture2D GetTextureDefault(void); // Get default texture
|
||||
|
||||
// Shader configuration functions
|
||||
RLAPI int GetShaderLocation(Shader shader, const char *uniformName); // Get shader uniform location
|
||||
RLAPI void SetShaderValue(Shader shader, int uniformLoc, const float *value, int size); // Set shader uniform value (float)
|
||||
RLAPI void SetShaderValuei(Shader shader, int uniformLoc, const int *value, int size); // Set shader uniform value (int)
|
||||
RLAPI void SetShaderValueMatrix(Shader shader, int uniformLoc, Matrix mat); // Set shader uniform value (matrix 4x4)
|
||||
RLAPI void SetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix)
|
||||
RLAPI void SetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix)
|
||||
RLAPI Matrix GetMatrixModelview(); // Get internal modelview matrix
|
||||
|
||||
// Texture maps generation (PBR)
|
||||
// NOTE: Required shaders should be provided
|
||||
RLAPI Texture2D GenTextureCubemap(Shader shader, Texture2D skyHDR, int size); // Generate cubemap texture from HDR texture
|
||||
RLAPI Texture2D GenTextureIrradiance(Shader shader, Texture2D cubemap, int size); // Generate irradiance texture using cubemap data
|
||||
RLAPI Texture2D GenTexturePrefilter(Shader shader, Texture2D cubemap, int size); // Generate prefilter texture using cubemap data
|
||||
RLAPI Texture2D GenTextureBRDF(Shader shader, Texture2D cubemap, int size); // Generate BRDF texture using cubemap data
|
||||
|
||||
// Shading begin/end functions
|
||||
RLAPI void BeginShaderMode(Shader shader); // Begin custom shader drawing
|
||||
RLAPI void EndShaderMode(void); // End custom shader drawing (use default shader)
|
||||
RLAPI void BeginBlendMode(int mode); // Begin blending mode (alpha, additive, multiplied)
|
||||
RLAPI void EndBlendMode(void); // End blending mode (reset to default: alpha blending)
|
||||
|
||||
// VR control functions
|
||||
RLAPI VrDeviceInfo GetVrDeviceInfo(int vrDeviceType); // Get VR device information for some standard devices
|
||||
RLAPI void InitVrSimulator(VrDeviceInfo info); // Init VR simulator for selected device parameters
|
||||
RLAPI void CloseVrSimulator(void); // Close VR simulator for current device
|
||||
RLAPI bool IsVrSimulatorReady(void); // Detect if VR simulator is ready
|
||||
RLAPI void SetVrDistortionShader(Shader shader); // Set VR distortion shader for stereoscopic rendering
|
||||
RLAPI void UpdateVrTracking(Camera *camera); // Update VR tracking (position and orientation) and camera
|
||||
RLAPI void ToggleVrMode(void); // Enable/Disable VR experience
|
||||
RLAPI void BeginVrDrawing(void); // Begin VR simulator stereo rendering
|
||||
RLAPI void EndVrDrawing(void); // End VR simulator stereo rendering
|
||||
|
||||
//------------------------------------------------------------------------------------
|
||||
// Audio Loading and Playing Functions (Module: audio)
|
||||
//------------------------------------------------------------------------------------
|
||||
|
||||
// Audio device management functions
|
||||
RLAPI void InitAudioDevice(void); // Initialize audio device and context
|
||||
RLAPI void CloseAudioDevice(void); // Close the audio device and context
|
||||
RLAPI bool IsAudioDeviceReady(void); // Check if audio device has been initialized successfully
|
||||
RLAPI void SetMasterVolume(float volume); // Set master volume (listener)
|
||||
|
||||
// Wave/Sound loading/unloading functions
|
||||
RLAPI Wave LoadWave(const char *fileName); // Load wave data from file
|
||||
RLAPI Wave LoadWaveEx(void *data, int sampleCount, int sampleRate, int sampleSize, int channels); // Load wave data from raw array data
|
||||
RLAPI Sound LoadSound(const char *fileName); // Load sound from file
|
||||
RLAPI Sound LoadSoundFromWave(Wave wave); // Load sound from wave data
|
||||
RLAPI void UpdateSound(Sound sound, const void *data, int samplesCount);// Update sound buffer with new data
|
||||
RLAPI void UnloadWave(Wave wave); // Unload wave data
|
||||
RLAPI void UnloadSound(Sound sound); // Unload sound
|
||||
|
||||
// Wave/Sound management functions
|
||||
RLAPI void PlaySound(Sound sound); // Play a sound
|
||||
RLAPI void PauseSound(Sound sound); // Pause a sound
|
||||
RLAPI void ResumeSound(Sound sound); // Resume a paused sound
|
||||
RLAPI void StopSound(Sound sound); // Stop playing a sound
|
||||
RLAPI bool IsSoundPlaying(Sound sound); // Check if a sound is currently playing
|
||||
RLAPI void SetSoundVolume(Sound sound, float volume); // Set volume for a sound (1.0 is max level)
|
||||
RLAPI void SetSoundPitch(Sound sound, float pitch); // Set pitch for a sound (1.0 is base level)
|
||||
RLAPI void WaveFormat(Wave *wave, int sampleRate, int sampleSize, int channels); // Convert wave data to desired format
|
||||
RLAPI Wave WaveCopy(Wave wave); // Copy a wave to a new wave
|
||||
RLAPI void WaveCrop(Wave *wave, int initSample, int finalSample); // Crop a wave to defined samples range
|
||||
RLAPI float *GetWaveData(Wave wave); // Get samples data from wave as a floats array
|
||||
|
||||
// Music management functions
|
||||
RLAPI Music LoadMusicStream(const char *fileName); // Load music stream from file
|
||||
RLAPI void UnloadMusicStream(Music music); // Unload music stream
|
||||
RLAPI void PlayMusicStream(Music music); // Start music playing
|
||||
RLAPI void UpdateMusicStream(Music music); // Updates buffers for music streaming
|
||||
RLAPI void StopMusicStream(Music music); // Stop music playing
|
||||
RLAPI void PauseMusicStream(Music music); // Pause music playing
|
||||
RLAPI void ResumeMusicStream(Music music); // Resume playing paused music
|
||||
RLAPI bool IsMusicPlaying(Music music); // Check if music is playing
|
||||
RLAPI void SetMusicVolume(Music music, float volume); // Set volume for music (1.0 is max level)
|
||||
RLAPI void SetMusicPitch(Music music, float pitch); // Set pitch for a music (1.0 is base level)
|
||||
RLAPI void SetMusicLoopCount(Music music, int count); // Set music loop count (loop repeats)
|
||||
RLAPI float GetMusicTimeLength(Music music); // Get music time length (in seconds)
|
||||
RLAPI float GetMusicTimePlayed(Music music); // Get current music time played (in seconds)
|
||||
|
||||
// AudioStream management functions
|
||||
RLAPI AudioStream InitAudioStream(unsigned int sampleRate, unsigned int sampleSize, unsigned int channels); // Init audio stream (to stream raw audio pcm data)
|
||||
RLAPI void UpdateAudioStream(AudioStream stream, const void *data, int samplesCount); // Update audio stream buffers with data
|
||||
RLAPI void CloseAudioStream(AudioStream stream); // Close audio stream and free memory
|
||||
RLAPI bool IsAudioBufferProcessed(AudioStream stream); // Check if any audio stream buffers requires refill
|
||||
RLAPI void PlayAudioStream(AudioStream stream); // Play audio stream
|
||||
RLAPI void PauseAudioStream(AudioStream stream); // Pause audio stream
|
||||
RLAPI void ResumeAudioStream(AudioStream stream); // Resume audio stream
|
||||
RLAPI bool IsAudioStreamPlaying(AudioStream stream); // Check if audio stream is playing
|
||||
RLAPI void StopAudioStream(AudioStream stream); // Stop audio stream
|
||||
RLAPI void SetAudioStreamVolume(AudioStream stream, float volume); // Set volume for audio stream (1.0 is max level)
|
||||
RLAPI void SetAudioStreamPitch(AudioStream stream, float pitch); // Set pitch for audio stream (1.0 is base level)
|
Before Width: | Height: | Size: 801 B After Width: | Height: | Size: 801 B |
Before Width: | Height: | Size: 329 B After Width: | Height: | Size: 329 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 429 B After Width: | Height: | Size: 429 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |