Merge remote-tracking branch 'origin/master' into update-examples-fix
|
|
@ -1,6 +1,6 @@
|
||||||
#ifdef GL_ES
|
#version 100
|
||||||
|
|
||||||
precision mediump float;
|
precision mediump float;
|
||||||
#endif
|
|
||||||
|
|
||||||
// Input from vertex shader
|
// Input from vertex shader
|
||||||
varying vec3 fragPosition;
|
varying vec3 fragPosition;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#ifdef GL_ES
|
#version 100
|
||||||
|
|
||||||
precision mediump float;
|
precision mediump float;
|
||||||
#endif
|
|
||||||
|
|
||||||
// Input vertex attributes
|
// Input vertex attributes
|
||||||
attribute vec3 vertexPosition;
|
attribute vec3 vertexPosition;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#version 120
|
||||||
// Input from vertex shader
|
// Input from vertex shader
|
||||||
varying vec3 fragPosition;
|
varying vec3 fragPosition;
|
||||||
varying vec4 fragColor;
|
varying vec4 fragColor;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#version 120
|
||||||
// Input vertex attributes
|
// Input vertex attributes
|
||||||
attribute vec3 vertexPosition;
|
attribute vec3 vertexPosition;
|
||||||
attribute vec3 vertexNormal;
|
attribute vec3 vertexNormal;
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.4 KiB |
|
|
@ -1,6 +1,6 @@
|
||||||
/*******************************************************************************************
|
/*******************************************************************************************
|
||||||
*
|
*
|
||||||
* raylib [text] example - raylib fonts loading
|
* raylib [text] example - sprite fonts loading
|
||||||
*
|
*
|
||||||
* Example complexity rating: [★☆☆☆] 1/4
|
* Example complexity rating: [★☆☆☆] 1/4
|
||||||
*
|
*
|
||||||
|
|
@ -30,19 +30,19 @@ int main(void)
|
||||||
const int screenWidth = 800;
|
const int screenWidth = 800;
|
||||||
const int screenHeight = 450;
|
const int screenHeight = 450;
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [text] example - raylib fonts");
|
InitWindow(screenWidth, screenHeight, "raylib [text] example - sprite fonts");
|
||||||
|
|
||||||
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
|
// NOTE: Textures MUST be loaded after Window initialization (OpenGL context is required)
|
||||||
Font fonts[MAX_FONTS] = { 0 };
|
Font fonts[MAX_FONTS] = { 0 };
|
||||||
|
|
||||||
fonts[0] = LoadFont("resources/fonts/alagard.png");
|
fonts[0] = LoadFont("resources/sprite_fonts/alagard.png");
|
||||||
fonts[1] = LoadFont("resources/fonts/pixelplay.png");
|
fonts[1] = LoadFont("resources/sprite_fonts/pixelplay.png");
|
||||||
fonts[2] = LoadFont("resources/fonts/mecha.png");
|
fonts[2] = LoadFont("resources/sprite_fonts/mecha.png");
|
||||||
fonts[3] = LoadFont("resources/fonts/setback.png");
|
fonts[3] = LoadFont("resources/sprite_fonts/setback.png");
|
||||||
fonts[4] = LoadFont("resources/fonts/romulus.png");
|
fonts[4] = LoadFont("resources/sprite_fonts/romulus.png");
|
||||||
fonts[5] = LoadFont("resources/fonts/pixantiqua.png");
|
fonts[5] = LoadFont("resources/sprite_fonts/pixantiqua.png");
|
||||||
fonts[6] = LoadFont("resources/fonts/alpha_beta.png");
|
fonts[6] = LoadFont("resources/sprite_fonts/alpha_beta.png");
|
||||||
fonts[7] = LoadFont("resources/fonts/jupiter_crash.png");
|
fonts[7] = LoadFont("resources/sprite_fonts/jupiter_crash.png");
|
||||||
|
|
||||||
const char *messages[MAX_FONTS] = { "ALAGARD FONT designed by Hewett Tsoi",
|
const char *messages[MAX_FONTS] = { "ALAGARD FONT designed by Hewett Tsoi",
|
||||||
"PIXELPLAY FONT designed by Aleksander Shevchuk",
|
"PIXELPLAY FONT designed by Aleksander Shevchuk",
|
||||||
|
|
@ -87,8 +87,8 @@ int main(void)
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
DrawText("free fonts included with raylib", 250, 20, 20, DARKGRAY);
|
DrawText("free sprite fonts included with raylib", 220, 20, 20, DARKGRAY);
|
||||||
DrawLine(220, 50, 590, 50, DARKGRAY);
|
DrawLine(220, 50, 600, 50, DARKGRAY);
|
||||||
|
|
||||||
for (int i = 0; i < MAX_FONTS; i++)
|
for (int i = 0; i < MAX_FONTS; i++)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,127 +0,0 @@
|
||||||
#include <stdlib.h>
|
|
||||||
#include <raylib.h>
|
|
||||||
|
|
||||||
#define SCREEN_WIDTH 800
|
|
||||||
#define SCREEN_HEIGHT 450
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int* data;
|
|
||||||
int count;
|
|
||||||
int capacity;
|
|
||||||
} CodepointsArray;
|
|
||||||
|
|
||||||
static void AddRange(CodepointsArray* array, int start, int stop) {
|
|
||||||
int rangeSize = stop - start + 1;
|
|
||||||
|
|
||||||
if (array->count + rangeSize > array->capacity) {
|
|
||||||
array->capacity = array->count + rangeSize + 1024;
|
|
||||||
array->data = (int*)MemRealloc(array->data, array->capacity * sizeof(int));
|
|
||||||
if (!array->data) {
|
|
||||||
TraceLog(LOG_ERROR, "FONTUTIL: Memory allocation failed");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = start; i <= stop; i++) {
|
|
||||||
array->data[array->count++] = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Font LoadUnicodeFont(const char* fileName, int fontSize, int textureFilter) {
|
|
||||||
CodepointsArray cp = {0};
|
|
||||||
cp.capacity = 2048;
|
|
||||||
cp.data = (int*)MemAlloc(cp.capacity * sizeof(int));
|
|
||||||
|
|
||||||
if (!cp.data) {
|
|
||||||
TraceLog(LOG_ERROR, "FONTUTIL: Initial allocation failed");
|
|
||||||
return GetFontDefault();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Basic ASCII
|
|
||||||
AddRange(&cp, 32, 126);
|
|
||||||
|
|
||||||
// European Languages
|
|
||||||
AddRange(&cp, 0xC0, 0x17F);
|
|
||||||
AddRange(&cp, 0x180, 0x24F);
|
|
||||||
AddRange(&cp, 0x1E00, 0x1EFF);
|
|
||||||
AddRange(&cp, 0x2C60, 0x2C7F);
|
|
||||||
|
|
||||||
// Greek
|
|
||||||
AddRange(&cp, 0x370, 0x3FF);
|
|
||||||
AddRange(&cp, 0x1F00, 0x1FFF);
|
|
||||||
|
|
||||||
// Cyrillic
|
|
||||||
AddRange(&cp, 0x400, 0x4FF);
|
|
||||||
AddRange(&cp, 0x500, 0x52F);
|
|
||||||
AddRange(&cp, 0x2DE0, 0x2DFF);
|
|
||||||
AddRange(&cp, 0xA640, 0xA69F);
|
|
||||||
|
|
||||||
// CJK
|
|
||||||
AddRange(&cp, 0x4E00, 0x9FFF);
|
|
||||||
AddRange(&cp, 0x3400, 0x4DBF);
|
|
||||||
AddRange(&cp, 0x3000, 0x303F);
|
|
||||||
AddRange(&cp, 0x3040, 0x309F);
|
|
||||||
AddRange(&cp, 0x30A0, 0x30FF);
|
|
||||||
AddRange(&cp, 0x31F0, 0x31FF);
|
|
||||||
AddRange(&cp, 0xFF00, 0xFFEF);
|
|
||||||
AddRange(&cp, 0xAC00, 0xD7AF);
|
|
||||||
AddRange(&cp, 0x1100, 0x11FF);
|
|
||||||
|
|
||||||
// Other
|
|
||||||
AddRange(&cp, 0x900, 0x97F); // Devanagari
|
|
||||||
AddRange(&cp, 0x600, 0x6FF); // Arabic
|
|
||||||
AddRange(&cp, 0x5D0, 0x5EA); // Hebrew
|
|
||||||
|
|
||||||
Font font = {0};
|
|
||||||
|
|
||||||
if (FileExists(fileName)) {
|
|
||||||
font = LoadFontEx(fileName, fontSize, cp.data, cp.count);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (font.texture.id == 0) {
|
|
||||||
font = GetFontDefault();
|
|
||||||
TraceLog(LOG_WARNING, "FONTUTIL: Using default font");
|
|
||||||
}
|
|
||||||
|
|
||||||
SetTextureFilter(font.texture, textureFilter);
|
|
||||||
MemFree(cp.data);
|
|
||||||
|
|
||||||
return font;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Main entry point
|
|
||||||
*/
|
|
||||||
int main(void)
|
|
||||||
{
|
|
||||||
// Initialize window
|
|
||||||
InitWindow(SCREEN_WIDTH, SCREEN_HEIGHT, "Unicode Font Example");
|
|
||||||
SetTargetFPS(60);
|
|
||||||
|
|
||||||
// Load font with Unicode support
|
|
||||||
Font myFont = LoadUnicodeFont("resources/NotoSansTC-Regular.ttf", 36, TEXTURE_FILTER_BILINEAR);
|
|
||||||
|
|
||||||
// Main render loop
|
|
||||||
while (!WindowShouldClose())
|
|
||||||
{
|
|
||||||
BeginDrawing();
|
|
||||||
ClearBackground(RAYWHITE);
|
|
||||||
|
|
||||||
// Render test strings in different languages
|
|
||||||
DrawTextEx(myFont, "English: Hello World!", (Vector2){50, 50}, 36, 1, DARKGRAY);
|
|
||||||
DrawTextEx(myFont, "Русский: Привет мир!", (Vector2){50, 100}, 36, 0, DARKGRAY);
|
|
||||||
DrawTextEx(myFont, "中文: 你好世界!", (Vector2){50, 150}, 36, 1, DARKGRAY);
|
|
||||||
DrawTextEx(myFont, "日本語: こんにちは世界!", (Vector2){50, 200}, 36, 1, DARKGRAY);
|
|
||||||
|
|
||||||
// Display font attribution
|
|
||||||
DrawText("Font: Noto Sans TC. License: SIL Open Font License 1.1",
|
|
||||||
10, SCREEN_HEIGHT - 20, 10, GRAY);
|
|
||||||
EndDrawing();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Cleanup resources
|
|
||||||
UnloadFont(myFont);
|
|
||||||
CloseWindow();
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
183
examples/text/text_unicode_ranges.c
Normal file
|
|
@ -0,0 +1,183 @@
|
||||||
|
/*******************************************************************************************
|
||||||
|
*
|
||||||
|
* raylib [text] example - unicode ranges
|
||||||
|
*
|
||||||
|
* Example complexity rating: [★★★★] 4/4
|
||||||
|
*
|
||||||
|
* Example originally created with raylib 2.5, last time updated with raylib 4.0
|
||||||
|
*
|
||||||
|
* Example contributed by Vlad Adrian (@demizdor) and reviewed by Ramon Santamaria (@raysan5)
|
||||||
|
*
|
||||||
|
* Example 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) 2019-2025 Vlad Adrian (@demizdor) and Ramon Santamaria (@raysan5)
|
||||||
|
*
|
||||||
|
********************************************************************************************/
|
||||||
|
|
||||||
|
#include "raylib.h"
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int* data;
|
||||||
|
int count;
|
||||||
|
int capacity;
|
||||||
|
} CodepointsArray;
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
// Module functions declaration
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
static void AddRange(CodepointsArray* array, int start, int stop);
|
||||||
|
static Font LoadUnicodeFont(const char* fileName, int fontSize);
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
// Program main entry point
|
||||||
|
//------------------------------------------------------------------------------------
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
// Initialization
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
const int screenWidth = 800;
|
||||||
|
const int screenHeight = 450;
|
||||||
|
|
||||||
|
InitWindow(screenWidth, screenHeight, "raylib [text] example - unicode ranges");
|
||||||
|
|
||||||
|
// Load font with Unicode support
|
||||||
|
Font fontUni = LoadUnicodeFont("resources/NotoSansTC-Regular.ttf", 32);
|
||||||
|
SetTextureFilter(fontUni.texture, TEXTURE_FILTER_BILINEAR);
|
||||||
|
|
||||||
|
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Main loop
|
||||||
|
while (!WindowShouldClose()) // Detect window close button or ESC key
|
||||||
|
{
|
||||||
|
// Update
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
//...
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
// Draw
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
BeginDrawing();
|
||||||
|
|
||||||
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
|
// Render test strings in different languages
|
||||||
|
DrawTextEx(fontUni, "English: Hello World!", (Vector2){ 50, 50 }, 32, 1, DARKGRAY); // English
|
||||||
|
DrawTextEx(fontUni, "Español: Hola mundo!", (Vector2){ 50, 100 }, 32, 1, DARKGRAY); // Spanish
|
||||||
|
DrawTextEx(fontUni, "Ελληνικά: Γειά σου κόσμε!", (Vector2){ 50, 150 }, 32, 1, DARKGRAY); // Greek
|
||||||
|
DrawTextEx(fontUni, "Русский: Привет мир!", (Vector2){ 50, 200 }, 32, 0, DARKGRAY); // Russian
|
||||||
|
DrawTextEx(fontUni, "中文: 你好世界!", (Vector2){ 50, 250 }, 32, 1, DARKGRAY); // Chinese
|
||||||
|
DrawTextEx(fontUni, "日本語: こんにちは世界!", (Vector2){ 50, 300 }, 32, 1, DARKGRAY); // Japanese
|
||||||
|
DrawTextEx(fontUni, "देवनागरी: होला मुंडो!", (Vector2){ 50, 350 }, 32, 1, DARKGRAY); // Devanagari
|
||||||
|
|
||||||
|
DrawRectangle(400, 16, 380, 400, BLACK);
|
||||||
|
DrawTexturePro(fontUni.texture, (Rectangle){ 0, 0, fontUni.texture.width, fontUni.texture.height },
|
||||||
|
(Rectangle){ 400, 16, 380, 400 }, (Vector2){ 0, 0 }, 0.0f, WHITE);
|
||||||
|
|
||||||
|
// Display font attribution
|
||||||
|
DrawText("Font: Noto Sans TC. License: SIL Open Font License 1.1", screenWidth - 300, screenHeight - 20, 10, GRAY);
|
||||||
|
|
||||||
|
EndDrawing();
|
||||||
|
//----------------------------------------------------------------------------------
|
||||||
|
}
|
||||||
|
|
||||||
|
// De-Initialization
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
UnloadFont(fontUni); // Unload font resource
|
||||||
|
|
||||||
|
CloseWindow(); // Close window and OpenGL context
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
// Module functions definition
|
||||||
|
//--------------------------------------------------------------------------------------
|
||||||
|
static void AddRange(CodepointsArray* array, int start, int stop)
|
||||||
|
{
|
||||||
|
int rangeSize = stop - start + 1;
|
||||||
|
|
||||||
|
if ((array->count + rangeSize) > array->capacity)
|
||||||
|
{
|
||||||
|
array->capacity = array->count + rangeSize + 1024;
|
||||||
|
array->data = (int *)MemRealloc(array->data, array->capacity*sizeof(int));
|
||||||
|
|
||||||
|
if (!array->data)
|
||||||
|
{
|
||||||
|
TraceLog(LOG_ERROR, "FONTUTIL: Memory allocation failed");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = start; i <= stop; i++) array->data[array->count++] = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
Font LoadUnicodeFont(const char *fileName, int fontSize)
|
||||||
|
{
|
||||||
|
CodepointsArray cp = { 0 };
|
||||||
|
cp.capacity = 2048;
|
||||||
|
cp.data = (int *)MemAlloc(cp.capacity*sizeof(int));
|
||||||
|
|
||||||
|
if (!cp.data)
|
||||||
|
{
|
||||||
|
TraceLog(LOG_ERROR, "FONTUTIL: Initial allocation failed");
|
||||||
|
return GetFontDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unicode range: Basic ASCII
|
||||||
|
AddRange(&cp, 32, 126);
|
||||||
|
|
||||||
|
// Unicode range: European Languages
|
||||||
|
AddRange(&cp, 0xC0, 0x17F);
|
||||||
|
AddRange(&cp, 0x180, 0x24F);
|
||||||
|
AddRange(&cp, 0x1E00, 0x1EFF);
|
||||||
|
AddRange(&cp, 0x2C60, 0x2C7F);
|
||||||
|
|
||||||
|
// Unicode range: Greek
|
||||||
|
AddRange(&cp, 0x370, 0x3FF);
|
||||||
|
AddRange(&cp, 0x1F00, 0x1FFF);
|
||||||
|
|
||||||
|
// Unicode range: Cyrillic
|
||||||
|
AddRange(&cp, 0x400, 0x4FF);
|
||||||
|
AddRange(&cp, 0x500, 0x52F);
|
||||||
|
AddRange(&cp, 0x2DE0, 0x2DFF);
|
||||||
|
AddRange(&cp, 0xA640, 0xA69F);
|
||||||
|
|
||||||
|
// Unicode range: CJK
|
||||||
|
AddRange(&cp, 0x4E00, 0x9FFF);
|
||||||
|
AddRange(&cp, 0x3400, 0x4DBF);
|
||||||
|
AddRange(&cp, 0x3000, 0x303F);
|
||||||
|
AddRange(&cp, 0x3040, 0x309F);
|
||||||
|
AddRange(&cp, 0x30A0, 0x30FF);
|
||||||
|
AddRange(&cp, 0x31F0, 0x31FF);
|
||||||
|
AddRange(&cp, 0xFF00, 0xFFEF);
|
||||||
|
AddRange(&cp, 0xAC00, 0xD7AF);
|
||||||
|
AddRange(&cp, 0x1100, 0x11FF);
|
||||||
|
|
||||||
|
// Unicode range: Other
|
||||||
|
// WARNING: Not available on provided font
|
||||||
|
AddRange(&cp, 0x900, 0x97F); // Devanagari
|
||||||
|
AddRange(&cp, 0x600, 0x6FF); // Arabic
|
||||||
|
AddRange(&cp, 0x5D0, 0x5EA); // Hebrew
|
||||||
|
|
||||||
|
Font font = {0};
|
||||||
|
|
||||||
|
if (FileExists(fileName))
|
||||||
|
{
|
||||||
|
font = LoadFontEx(fileName, fontSize, cp.data, cp.count);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (font.texture.id == 0)
|
||||||
|
{
|
||||||
|
font = GetFontDefault();
|
||||||
|
TraceLog(LOG_WARNING, "FONTUTIL: Using default font");
|
||||||
|
}
|
||||||
|
|
||||||
|
MemFree(cp.data);
|
||||||
|
|
||||||
|
return font;
|
||||||
|
}
|
||||||
63
src/external/fix_win32_compatibility.h
vendored
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
/**********************************************************************************************
|
||||||
|
*
|
||||||
|
* fix_win32_compatibility.h Utility to help include windows.h with raylib projects
|
||||||
|
*
|
||||||
|
* Useage: #include "fix_win32_compatibility.h" any library that uses windows.h
|
||||||
|
* order is critical, this must be done before raylib
|
||||||
|
*
|
||||||
|
* LICENSE: MIT
|
||||||
|
*
|
||||||
|
* Copyright (c) 2025 Jeffery Myers
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in all
|
||||||
|
* copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
* SOFTWARE.
|
||||||
|
*
|
||||||
|
**********************************************************************************************/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
// move the windows functions to new names
|
||||||
|
// note that you can't call these functions or structures from your code, but you should not neeed to
|
||||||
|
#define CloseWindow CloseWindowWin32
|
||||||
|
#define Rectangle RectangleWin32
|
||||||
|
#define ShowCursor ShowCursorWin32
|
||||||
|
#define LoadImageA LoadImageAWin32
|
||||||
|
#define LoadImageW LoadImageWin32
|
||||||
|
#define DrawTextA DrawTextAWin32
|
||||||
|
#define DrawTextW DrawTextWin32
|
||||||
|
#define DrawTextExA DrawTextExAWin32
|
||||||
|
#define DrawTextExW DrawTextExWin32
|
||||||
|
#define PlaySoundA PlaySoundAWin32\
|
||||||
|
// include windows
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
// remove all our redfintions so that raylib can define them properly
|
||||||
|
#undef CloseWindow
|
||||||
|
#undef Rectangle
|
||||||
|
#undef ShowCursor
|
||||||
|
#undef LoadImage
|
||||||
|
#undef LoadImageA
|
||||||
|
#undef LoadImageW
|
||||||
|
#undef DrawText
|
||||||
|
#undef DrawTextA
|
||||||
|
#undef DrawTextW
|
||||||
|
#undef DrawTextEx
|
||||||
|
#undef DrawTextExA
|
||||||
|
#undef DrawTextExW
|
||||||
|
#undef PlaySoundA
|
||||||
|
|
@ -982,9 +982,13 @@ Sound LoadSoundAlias(Sound source)
|
||||||
}
|
}
|
||||||
|
|
||||||
audioBuffer->sizeInFrames = source.stream.buffer->sizeInFrames;
|
audioBuffer->sizeInFrames = source.stream.buffer->sizeInFrames;
|
||||||
audioBuffer->volume = source.stream.buffer->volume;
|
|
||||||
audioBuffer->data = source.stream.buffer->data;
|
audioBuffer->data = source.stream.buffer->data;
|
||||||
|
|
||||||
|
// initalize the buffer as if it was new
|
||||||
|
audioBuffer->volume = 1.0f;
|
||||||
|
audioBuffer->pitch = 1.0f;
|
||||||
|
audioBuffer->pan = 0.5f;
|
||||||
|
|
||||||
sound.frameCount = source.frameCount;
|
sound.frameCount = source.frameCount;
|
||||||
sound.stream.sampleRate = AUDIO.System.device.sampleRate;
|
sound.stream.sampleRate = AUDIO.System.device.sampleRate;
|
||||||
sound.stream.sampleSize = 32;
|
sound.stream.sampleSize = 32;
|
||||||
|
|
|
||||||