From 9d27bba23f08e7749fd98c8b56b5fe34786926fd Mon Sep 17 00:00:00 2001 From: raysan5 Date: Fri, 17 Oct 2014 21:11:58 +0200 Subject: [PATCH] Small Fixes Update (1.2.1) View CHANGELOG for description on small fixes and add-ons --- CHANGELOG | 10 +++++++++- release/win32-mingw/include/raylib.h | 14 ++++++++++++++ release/win32-mingw/lib/libraylib.a | Bin 247866 -> 248132 bytes src/core.c | 25 ++++++++++++++++++------- src/makefile | 2 +- src/models.c | 4 +++- src/raylib.h | 14 ++++++++++++++ src/rlgl.c | 2 +- src/rlgl.h | 5 ----- src/text.c | 6 +++++- 10 files changed, 65 insertions(+), 17 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index a8dfae047..333600953 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -3,9 +3,17 @@ changelog Current Release: raylib 1.2 (16 September 2014) -NOTE: Only versions marked as 'Release' are available on release folder, updates are only available as source. +NOTE: Only versions marked as 'Release' are available in installer, updates are only available as source. NOTE: Current Release includes all previous updates. +--------------------------------------------------------------- +Update: raylib 1.2.1 (17 October 2014) (Small Fixes Update) +--------------------------------------------------------------- +[core] Added function SetupFlags() to preconfigure raylib Window +[core] Corrected bug on fullscreen mode +[rlgl] rlglDrawmodel() - Added rotation on Y axis +[text] MeasureTextEx() - Corrected bug on measures for default font + ----------------------------------------------- Release: raylib 1.2 (16 September 2014) ----------------------------------------------- diff --git a/release/win32-mingw/include/raylib.h b/release/win32-mingw/include/raylib.h index 4de67ba29..5257de58f 100644 --- a/release/win32-mingw/include/raylib.h +++ b/release/win32-mingw/include/raylib.h @@ -64,6 +64,11 @@ //#define PLATFORM_ANDROID // Android device //#define PLATFORM_RPI // Raspberry Pi +// Security check in case no PLATFORM_* defined +#if !defined(PLATFORM_DESKTOP) && !defined(PLATFORM_ANDROID) && !defined(PLATFORM_RPI) + #define PLATFORM_DESKTOP +#endif + #if defined(PLATFORM_ANDROID) #include // Defines android_app struct #endif @@ -78,6 +83,13 @@ #define DEG2RAD (PI / 180.0f) #define RAD2DEG (180.0f / PI) +// raylib Config Flags +#define FLAG_FULLSCREEN_MODE 1 +#define FLAG_SHOW_LOGO 2 +#define FLAG_SHOW_MOUSE_CURSOR 4 +#define FLAG_CENTERED_MODE 8 +#define FLAG_MSAA_4X_HINT 16 + // Keyboard Function Keys #define KEY_SPACE 32 #define KEY_ESCAPE 256 @@ -300,6 +312,8 @@ int GetHexValue(Color color); // Returns hexadecim int GetRandomValue(int min, int max); // Returns a random value between min and max (both included) Color Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f +void SetupFlags(char flags); // Enable some window configurations + void ShowLogo(void); // Activates raylib logo at startup //------------------------------------------------------------------------------------ diff --git a/release/win32-mingw/lib/libraylib.a b/release/win32-mingw/lib/libraylib.a index 6cca6a27406c9d61315b2c5f1c164d44e3763555..7c561f935e2b3f9591d6e38a5afcb4d54631c51e 100644 GIT binary patch delta 9920 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 delta 9603 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 df?6Mn(+=L_nS4fz-H= 60 FPS) + //glfwSwapInterval(0); // Disables GPU v-sync (if set), so frames are not limited to screen refresh rate (60Hz -> 60 FPS) // If not set, swap interval uses GPU v-sync configuration // Framerate can be setup using SetTargetFPS() @@ -1144,11 +1155,11 @@ static void CursorEnterCallback(GLFWwindow *window, int enter) static void WindowSizeCallback(GLFWwindow *window, int width, int height) { // If window is resized, graphics device is re-initialized (but only ortho mode) - rlglInitGraphics(0, 0, width, height); + rlglInitGraphics(renderOffsetX, renderOffsetY, renderWidth, renderHeight); // Window size must be updated to be used on 3D mode to get new aspect ratio (Begin3dMode()) - screenWidth = width; - screenHeight = height; + //screenWidth = width; + //screenHeight = height; // TODO: Update render size? diff --git a/src/makefile b/src/makefile index 6f0179ab4..69e7862b0 100644 --- a/src/makefile +++ b/src/makefile @@ -33,7 +33,7 @@ ifeq ($(PLATFORM),PLATFORM_RPI) GRAPHICS = GRAPHICS_API_OPENGL_ES2 else # define raylib graphics api to use (on Windows desktop, OpenGL 1.1 by default) - GRAPHICS = GRAPHICS_API_OPENGL_11 + GRAPHICS ?= GRAPHICS_API_OPENGL_11 #GRAPHICS = GRAPHICS_API_OPENGL_33 # Uncomment to use OpenGL 3.3 endif diff --git a/src/models.c b/src/models.c index ab6abb554..d69322a80 100644 --- a/src/models.c +++ b/src/models.c @@ -448,7 +448,7 @@ void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, fl // Draw a plane void DrawPlane(Vector3 centerPos, Vector2 size, Vector3 rotation, Color color) { - // NOTE: QUADS usage require defining a texture + // NOTE: QUADS usage require defining a texture on OpenGL 3.3+ rlEnableTexture(1); // Default white texture // NOTE: Plane is always created on XZ ground and then rotated @@ -1145,6 +1145,7 @@ void DrawModelWires(Model model, Vector3 position, float scale, Color color) } // Draw a billboard +// TODO: Math review... void DrawBillboard(Camera camera, Texture2D texture, Vector3 center, float size, Color tint) { // NOTE: Billboard size will maintain texture aspect ratio, size will be billboard width @@ -1188,6 +1189,7 @@ void DrawBillboard(Camera camera, Texture2D texture, Vector3 center, float size, } // Draw a billboard (part of a texture defined by a rectangle) +// TODO: Math review... void DrawBillboardRec(Camera camera, Texture2D texture, Rectangle sourceRec, Vector3 center, float size, Color tint) { // NOTE: Billboard size will maintain sourceRec aspect ratio, size will represent billboard width diff --git a/src/raylib.h b/src/raylib.h index 4de67ba29..5257de58f 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -64,6 +64,11 @@ //#define PLATFORM_ANDROID // Android device //#define PLATFORM_RPI // Raspberry Pi +// Security check in case no PLATFORM_* defined +#if !defined(PLATFORM_DESKTOP) && !defined(PLATFORM_ANDROID) && !defined(PLATFORM_RPI) + #define PLATFORM_DESKTOP +#endif + #if defined(PLATFORM_ANDROID) #include // Defines android_app struct #endif @@ -78,6 +83,13 @@ #define DEG2RAD (PI / 180.0f) #define RAD2DEG (180.0f / PI) +// raylib Config Flags +#define FLAG_FULLSCREEN_MODE 1 +#define FLAG_SHOW_LOGO 2 +#define FLAG_SHOW_MOUSE_CURSOR 4 +#define FLAG_CENTERED_MODE 8 +#define FLAG_MSAA_4X_HINT 16 + // Keyboard Function Keys #define KEY_SPACE 32 #define KEY_ESCAPE 256 @@ -300,6 +312,8 @@ int GetHexValue(Color color); // Returns hexadecim int GetRandomValue(int min, int max); // Returns a random value between min and max (both included) Color Fade(Color color, float alpha); // Color fade-in or fade-out, alpha goes from 0.0f to 1.0f +void SetupFlags(char flags); // Enable some window configurations + void ShowLogo(void); // Activates raylib logo at startup //------------------------------------------------------------------------------------ diff --git a/src/rlgl.c b/src/rlgl.c index 8f8d67e75..8f1a66a89 100644 --- a/src/rlgl.c +++ b/src/rlgl.c @@ -1092,7 +1092,7 @@ void rlglDrawModel(Model model, Vector3 position, Vector3 rotation, Vector3 scal rlPushMatrix(); rlTranslatef(position.x, position.y, position.z); rlScalef(scale.x, scale.y, scale.z); - //rlRotatef(rotation, 0, 1, 0); + rlRotatef(rotation.y, 0, 1, 0); // TODO: If rotate in multiple axis, get rotation matrix and use rlMultMatrix() diff --git a/src/rlgl.h b/src/rlgl.h index 7c8eb74b1..3e9cba0ef 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -52,11 +52,6 @@ #define GRAPHICS_API_OPENGL_11 #endif -// Security check in case no GRAPHICS_API_OPENGL_* defined -#if !defined(GRAPHICS_API_OPENGL_11) && !defined(GRAPHICS_API_OPENGL_33) && !defined(GRAPHICS_API_OPENGL_ES2) - #define GRAPHICS_API_OPENGL_11 -#endif - // Security check in case multiple GRAPHICS_API_OPENGL_* defined #if defined(GRAPHICS_API_OPENGL_11) #if defined(GRAPHICS_API_OPENGL_33) diff --git a/src/text.c b/src/text.c index b42d7d11e..3ca237b92 100644 --- a/src/text.c +++ b/src/text.c @@ -340,7 +340,11 @@ int MeasureText(const char *text, int fontSize) { Vector2 vec; - vec = MeasureTextEx(defaultFont, text, fontSize, 1); + int defaultFontSize = 10; // Default Font chars height in pixel + if (fontSize < defaultFontSize) fontSize = defaultFontSize; + int spacing = fontSize / defaultFontSize; + + vec = MeasureTextEx(defaultFont, text, fontSize, spacing); return (int)vec.x; }