Remove line breaks
This commit is contained in:
parent
b20d416131
commit
fe9e82b2e6
4 changed files with 101 additions and 101 deletions
118
CHANGELOG
118
CHANGELOG
|
@ -12,7 +12,7 @@ KEY CHANGES:
|
||||||
- raylib_parser: Multiple improvements of the raylib parser to automatize bindings generation
|
- raylib_parser: Multiple improvements of the raylib parser to automatize bindings generation
|
||||||
- REMOVED extras libraries (raygui, physac, raudio.h...) moved to independent separate repos
|
- REMOVED extras libraries (raygui, physac, raudio.h...) moved to independent separate repos
|
||||||
- UPDATED: examples: Added creation and update raylib versions and assigned **DIFFICULTY LEVELS**!
|
- UPDATED: examples: Added creation and update raylib versions and assigned **DIFFICULTY LEVELS**!
|
||||||
|
|
||||||
Detailed changes:
|
Detailed changes:
|
||||||
[multi] REVIEWED: Multiple trace log messages
|
[multi] REVIEWED: Multiple trace log messages
|
||||||
[multi] REVIEWED: Avoid some float to double promotions
|
[multi] REVIEWED: Avoid some float to double promotions
|
||||||
|
@ -47,7 +47,7 @@ Detailed changes:
|
||||||
[core] REVIEWED: ToggleFullscreen()
|
[core] REVIEWED: ToggleFullscreen()
|
||||||
[core] REVIEWED: Initialize/reset CORE.inputs global state (#2360)
|
[core] REVIEWED: Initialize/reset CORE.inputs global state (#2360)
|
||||||
[core] REVIEWED: MouseScrollCallback() (#2371)
|
[core] REVIEWED: MouseScrollCallback() (#2371)
|
||||||
[core] REVIEWED: SwapScreenBuffers() for PLATFORM_DRM
|
[core] REVIEWED: SwapScreenBuffers() for PLATFORM_DRM
|
||||||
[core] REVIEWED: WaitTime(), fix regression causing video stuttering (#2503) by @flashback-fx
|
[core] REVIEWED: WaitTime(), fix regression causing video stuttering (#2503) by @flashback-fx
|
||||||
[core] REVIEWED: Mouse device support on PLATFORM_DRM (#2381)
|
[core] REVIEWED: Mouse device support on PLATFORM_DRM (#2381)
|
||||||
[core] REVIEWED: Support OpenBSD timming functions
|
[core] REVIEWED: Support OpenBSD timming functions
|
||||||
|
@ -55,7 +55,7 @@ Detailed changes:
|
||||||
[core] REVIEWED: TakeScreenshot(), use GetWindowScaleDPI() to calculate size in screenshot/recording (#2446) by @gulrak
|
[core] REVIEWED: TakeScreenshot(), use GetWindowScaleDPI() to calculate size in screenshot/recording (#2446) by @gulrak
|
||||||
[core] REVIEWED: Remove fps requirement for drm connector selection (#2468) by @Crydsch
|
[core] REVIEWED: Remove fps requirement for drm connector selection (#2468) by @Crydsch
|
||||||
[core] REVIEWED: IsFileExtension() (#2530)
|
[core] REVIEWED: IsFileExtension() (#2530)
|
||||||
[camera] REVIEWED: Some camera improvements (#2563)
|
[camera] REVIEWED: Some camera improvements (#2563)
|
||||||
[rlgl] ADDED: Premultiplied alpha blend mode (#2342) by @megagrump
|
[rlgl] ADDED: Premultiplied alpha blend mode (#2342) by @megagrump
|
||||||
[rlgl] REVIEWED: VR rendering not taking render target size into account (#2424) by @FireFlyForLife
|
[rlgl] REVIEWED: VR rendering not taking render target size into account (#2424) by @FireFlyForLife
|
||||||
[rlgl] REVIEWED: Set rlgl internal framebuffer (#2420)
|
[rlgl] REVIEWED: Set rlgl internal framebuffer (#2420)
|
||||||
|
@ -73,7 +73,7 @@ Detailed changes:
|
||||||
[raymath] ADDED: Vector2Transform()
|
[raymath] ADDED: Vector2Transform()
|
||||||
[raymath] ADDED: Vector2DistanceSqr() (#2376) by @AnilBK
|
[raymath] ADDED: Vector2DistanceSqr() (#2376) by @AnilBK
|
||||||
[raymath] ADDED: Vector3DistanceSqr() (#2376) by @AnilBK
|
[raymath] ADDED: Vector3DistanceSqr() (#2376) by @AnilBK
|
||||||
[raymath] ADDED: Vector2ClampValue(), Vector3ClampValue() (#2428) by @saccharineboi
|
[raymath] ADDED: Vector2ClampValue(), Vector3ClampValue() (#2428) by @saccharineboi
|
||||||
[raymath] ADDED: Vector3RotateByAxisAngle() (#2590) by @Crydsch
|
[raymath] ADDED: Vector3RotateByAxisAngle() (#2590) by @Crydsch
|
||||||
[raymath] `WARNING`: REDESIGNED: Vector2Angle() returns radians instead of degrees (#2193) by @schveiguy
|
[raymath] `WARNING`: REDESIGNED: Vector2Angle() returns radians instead of degrees (#2193) by @schveiguy
|
||||||
[raymath] `WARNING`: REMOVED: MatrixNormalize() (#2412)
|
[raymath] `WARNING`: REMOVED: MatrixNormalize() (#2412)
|
||||||
|
@ -88,7 +88,7 @@ Detailed changes:
|
||||||
[shapes] REVIEWED: CheckCollision*() consistency
|
[shapes] REVIEWED: CheckCollision*() consistency
|
||||||
[shapes] REVIEWED: DrawRectanglePro(), support TRIANGLES drawing
|
[shapes] REVIEWED: DrawRectanglePro(), support TRIANGLES drawing
|
||||||
[textures] ADDED: Support for QOI image format
|
[textures] ADDED: Support for QOI image format
|
||||||
[textures] REVIEWED: ImageColorTint(), GetImageColor(), ImageDrawRectangleRec(), optimized functions (#2429) by @AnilBK
|
[textures] REVIEWED: ImageColorTint(), GetImageColor(), ImageDrawRectangleRec(), optimized functions (#2429) by @AnilBK
|
||||||
[textures] REVIEWED: LoadTextureFromImage(), allow texture loading with no data transfer
|
[textures] REVIEWED: LoadTextureFromImage(), allow texture loading with no data transfer
|
||||||
[textures] REVIEWED: ImageDraw(), comment to note that f32bit is not supported (#2222)
|
[textures] REVIEWED: ImageDraw(), comment to note that f32bit is not supported (#2222)
|
||||||
[textures] REVIEWED: DrawTextureNPatch(), avoid batch overflow (#2401) by @JeffM2501
|
[textures] REVIEWED: DrawTextureNPatch(), avoid batch overflow (#2401) by @JeffM2501
|
||||||
|
@ -103,7 +103,7 @@ Detailed changes:
|
||||||
[text] ADDED: ExportFontAsCode()
|
[text] ADDED: ExportFontAsCode()
|
||||||
[text] ADDED: DrawTextCodepoints() (#2308) by @siddharthroy12
|
[text] ADDED: DrawTextCodepoints() (#2308) by @siddharthroy12
|
||||||
[text] REVIEWED: TextIsEqual(), protect from NULLs (#2121) by @lukekras
|
[text] REVIEWED: TextIsEqual(), protect from NULLs (#2121) by @lukekras
|
||||||
[text] REVIEWED: LoadFontEx(), comment to specify how to get the default character set (#2221) by @JeffM2501
|
[text] REVIEWED: LoadFontEx(), comment to specify how to get the default character set (#2221) by @JeffM2501
|
||||||
[text] REVIEWED: GenImageFontAtlas(), increase atlas size guesstimate by @megagrump
|
[text] REVIEWED: GenImageFontAtlas(), increase atlas size guesstimate by @megagrump
|
||||||
[text] REVIEWED: GetCodepoint() (#2201)
|
[text] REVIEWED: GetCodepoint() (#2201)
|
||||||
[text] REVIEWED: GenImageFontAtlas() (#2556)
|
[text] REVIEWED: GenImageFontAtlas() (#2556)
|
||||||
|
@ -122,9 +122,9 @@ Detailed changes:
|
||||||
[models] REVIEWED: GenMeshCylinder() (#2225)
|
[models] REVIEWED: GenMeshCylinder() (#2225)
|
||||||
[audio] `WARNING`: ADDED: rAudioProcessor pointer to AudioStream struct (used by Sound and Music structs)
|
[audio] `WARNING`: ADDED: rAudioProcessor pointer to AudioStream struct (used by Sound and Music structs)
|
||||||
[audio] ADDED: SetSoundPan(), SetMusicPan(), SetAudioStreamPan(), panning support (#2205) by ptarabbia
|
[audio] ADDED: SetSoundPan(), SetMusicPan(), SetAudioStreamPan(), panning support (#2205) by ptarabbia
|
||||||
[audio] ADDED: Audio stream input callback (#2212) by ptarabbia
|
[audio] ADDED: Audio stream input callback (#2212) by ptarabbia
|
||||||
[audio] ADDED: Audio stream processors support (#2212) by ptarabbia
|
[audio] ADDED: Audio stream processors support (#2212) by ptarabbia
|
||||||
[audio] REVIEWED: GetMusicTimePlayed(), incorrect value after the stream restarted for XM audio (#2092 #2215) by @ptarabbia
|
[audio] REVIEWED: GetMusicTimePlayed(), incorrect value after the stream restarted for XM audio (#2092 #2215) by @ptarabbia
|
||||||
[audio] REVIEWED: Turn on interpolation for XM playback (#2216) by @ptarabbia
|
[audio] REVIEWED: Turn on interpolation for XM playback (#2216) by @ptarabbia
|
||||||
[audio] REVIEWED: Fix crash with delay example (#2472) by @ptarabbia
|
[audio] REVIEWED: Fix crash with delay example (#2472) by @ptarabbia
|
||||||
[audio] REVIEWED: PlaySoundMulti() (#2231)
|
[audio] REVIEWED: PlaySoundMulti() (#2231)
|
||||||
|
@ -149,7 +149,7 @@ Detailed changes:
|
||||||
[examples] REVIEWED: textures_draw_tiled
|
[examples] REVIEWED: textures_draw_tiled
|
||||||
[examples] REVIEWED: shaders_mesh_instancing, free allocated matrices (#2425) by @AnilBK
|
[examples] REVIEWED: shaders_mesh_instancing, free allocated matrices (#2425) by @AnilBK
|
||||||
[examples] REVIEWED: shaders_raymarching
|
[examples] REVIEWED: shaders_raymarching
|
||||||
[examples] REVIEWED: audio_raw_stream (#2205) by ptarabbia
|
[examples] REVIEWED: audio_raw_stream (#2205) by ptarabbia
|
||||||
[examples] REVIEWED: audio_music_stream
|
[examples] REVIEWED: audio_music_stream
|
||||||
[examples] REVIEWED: shaders_mesh_instancing, simplified
|
[examples] REVIEWED: shaders_mesh_instancing, simplified
|
||||||
[examples] REVIEWED: shaders_basic_lighting, rlights.h simplified
|
[examples] REVIEWED: shaders_basic_lighting, rlights.h simplified
|
||||||
|
@ -162,7 +162,7 @@ Detailed changes:
|
||||||
[parser] ADDED: Makefile for raylib_parser by @iskolbin
|
[parser] ADDED: Makefile for raylib_parser by @iskolbin
|
||||||
[parser] ADDED: Support for truncating parser input (#2464) by @lazaray
|
[parser] ADDED: Support for truncating parser input (#2464) by @lazaray
|
||||||
[parser] ADDED: Support for calculated defines to parser (#2463) by @lazaray
|
[parser] ADDED: Support for calculated defines to parser (#2463) by @lazaray
|
||||||
[parser] REVIEWED: Update parser files (#2125) by @catmanl
|
[parser] REVIEWED: Update parser files (#2125) by @catmanl
|
||||||
[parser] REVIEWED: Fix memory leak in parser (#2136) by @ronnieholm
|
[parser] REVIEWED: Fix memory leak in parser (#2136) by @ronnieholm
|
||||||
[parser] REVIEWED: EscapeBackslashes()
|
[parser] REVIEWED: EscapeBackslashes()
|
||||||
[parser] REVIEWED: Parser improvements (#2461 #2462) by @lazaray
|
[parser] REVIEWED: Parser improvements (#2461 #2462) by @lazaray
|
||||||
|
@ -219,7 +219,7 @@ KEY CHANGES:
|
||||||
- raygui 3.0: Complete review and official new release, more portable and self-contained, intended for tools development
|
- raygui 3.0: Complete review and official new release, more portable and self-contained, intended for tools development
|
||||||
- raylib_parser: New tool to parse raylib.h and extract all required info into custom output formats (TXT, XML, JSON...)
|
- raylib_parser: New tool to parse raylib.h and extract all required info into custom output formats (TXT, XML, JSON...)
|
||||||
- Zig and Odin official support
|
- Zig and Odin official support
|
||||||
|
|
||||||
Detailed changes:
|
Detailed changes:
|
||||||
[core] ADDED: Support canvas resizing on web (#1840) by @skylersaleh
|
[core] ADDED: Support canvas resizing on web (#1840) by @skylersaleh
|
||||||
[core] ADDED: GetMouseDelta() (#1832) by @adricoin2010
|
[core] ADDED: GetMouseDelta() (#1832) by @adricoin2010
|
||||||
|
@ -258,7 +258,7 @@ Detailed changes:
|
||||||
[shapes] ADDED: RenderPolyLinesEx() (#1758) by @lambertwang
|
[shapes] ADDED: RenderPolyLinesEx() (#1758) by @lambertwang
|
||||||
[shapes] ADDED: DrawLineBezierCubic() (#2021) by @SAOMDVN
|
[shapes] ADDED: DrawLineBezierCubic() (#2021) by @SAOMDVN
|
||||||
[textures] ADDED: GetImageColor() #2024
|
[textures] ADDED: GetImageColor() #2024
|
||||||
[textures] REMOVED: GenImagePerlinNoise()
|
[textures] REMOVED: GenImagePerlinNoise()
|
||||||
[textures] RENAMED: GetTextureData() to LoadImageFromTexture()
|
[textures] RENAMED: GetTextureData() to LoadImageFromTexture()
|
||||||
[textures] RENAMED: GetScreenData() to LoadImageFromScreen()
|
[textures] RENAMED: GetScreenData() to LoadImageFromScreen()
|
||||||
[textures] REVIEWED: ExportImage() to use SaveFileData() (#1779)
|
[textures] REVIEWED: ExportImage() to use SaveFileData() (#1779)
|
||||||
|
@ -374,8 +374,8 @@ Detailed changes:
|
||||||
[core] RENAMED: LoadShaderCode() to LoadShaderFromMemory() (#1690)
|
[core] RENAMED: LoadShaderCode() to LoadShaderFromMemory() (#1690)
|
||||||
[core] RENAMED: SetMatrixProjection() to rlSetMatrixProjection()
|
[core] RENAMED: SetMatrixProjection() to rlSetMatrixProjection()
|
||||||
[core] RENAMED: SetMatrixModelview() to rlSetMatrixModelview()
|
[core] RENAMED: SetMatrixModelview() to rlSetMatrixModelview()
|
||||||
[core] RENAMED: GetMatrixModelview() to rlGetMatrixModelview()
|
[core] RENAMED: GetMatrixModelview() to rlGetMatrixModelview()
|
||||||
[core] RENAMED: GetMatrixProjection() to rlGetMatrixProjection()
|
[core] RENAMED: GetMatrixProjection() to rlGetMatrixProjection()
|
||||||
[core] RENAMED: GetShaderDefault() to rlGetShaderDefault()
|
[core] RENAMED: GetShaderDefault() to rlGetShaderDefault()
|
||||||
[core] RENAMED: GetTextureDefault() to rlGetTextureDefault()
|
[core] RENAMED: GetTextureDefault() to rlGetTextureDefault()
|
||||||
[core] REMOVED: GetShapesTexture()
|
[core] REMOVED: GetShapesTexture()
|
||||||
|
@ -390,7 +390,7 @@ Detailed changes:
|
||||||
[core] REDESIGNED: Compresion API to use sdefl/sinfl libs
|
[core] REDESIGNED: Compresion API to use sdefl/sinfl libs
|
||||||
[rlgl] ADDED: SUPPORT_GL_DETAILS_INFO config flag
|
[rlgl] ADDED: SUPPORT_GL_DETAILS_INFO config flag
|
||||||
[rlgl] REMOVED: GenTexture*() functions (#721)
|
[rlgl] REMOVED: GenTexture*() functions (#721)
|
||||||
[rlgl] REVIEWED: rlLoadShaderDefault()
|
[rlgl] REVIEWED: rlLoadShaderDefault()
|
||||||
[rlgl] REDESIGNED: rlLoadExtensions(), more details exposed
|
[rlgl] REDESIGNED: rlLoadExtensions(), more details exposed
|
||||||
[raymath] REVIEWED: QuaternionFromEuler() (#1651)
|
[raymath] REVIEWED: QuaternionFromEuler() (#1651)
|
||||||
[raymath] REVIEWED: MatrixRotateZYX() (#1642)
|
[raymath] REVIEWED: MatrixRotateZYX() (#1642)
|
||||||
|
@ -425,7 +425,7 @@ Detailed changes:
|
||||||
[utils] ADDED: SetLoadFileTextCallback()
|
[utils] ADDED: SetLoadFileTextCallback()
|
||||||
[utils] ADDED: SetSaveFileTextCallback()
|
[utils] ADDED: SetSaveFileTextCallback()
|
||||||
[examples] ADDED: text_draw_3d (#1689) by @Demizdor
|
[examples] ADDED: text_draw_3d (#1689) by @Demizdor
|
||||||
[examples] ADDED: textures_poly (#1677) by @chriscamacho
|
[examples] ADDED: textures_poly (#1677) by @chriscamacho
|
||||||
[examples] ADDED: models_gltf_model (#1551) by @object71
|
[examples] ADDED: models_gltf_model (#1551) by @object71
|
||||||
[examples] RENAMED: shaders_rlgl_mesh_instanced to shaders_mesh_intancing
|
[examples] RENAMED: shaders_rlgl_mesh_instanced to shaders_mesh_intancing
|
||||||
[examples] REDESIGNED: shaders_rlgl_mesh_instanced by @moliad
|
[examples] REDESIGNED: shaders_rlgl_mesh_instanced by @moliad
|
||||||
|
@ -451,11 +451,11 @@ KEY CHANGES:
|
||||||
- [core] ADDED: PLATFORM_DRM to support RPI4 and other devices (#1388) by @kernelkinetic
|
- [core] ADDED: PLATFORM_DRM to support RPI4 and other devices (#1388) by @kernelkinetic
|
||||||
- [core] REDESIGNED: Window states management system through FLAGS
|
- [core] REDESIGNED: Window states management system through FLAGS
|
||||||
- [rlgl] ADDED: RenderBatch type and related functions to allow custom batching (internal only)
|
- [rlgl] ADDED: RenderBatch type and related functions to allow custom batching (internal only)
|
||||||
- [rlgl] REDESIGNED: Framebuffers API to support multiple attachment types (#721)
|
- [rlgl] REDESIGNED: Framebuffers API to support multiple attachment types (#721)
|
||||||
- [textures] REDESIGNED: Image*() functions, big performance improvements (software rendering)
|
- [textures] REDESIGNED: Image*() functions, big performance improvements (software rendering)
|
||||||
- [*] REVIEWED: Multiple functions to replace file accesses by memory accesses
|
- [*] REVIEWED: Multiple functions to replace file accesses by memory accesses
|
||||||
- [*] ADDED: GitHub Actions CI to support multiple raylib build configurations
|
- [*] ADDED: GitHub Actions CI to support multiple raylib build configurations
|
||||||
|
|
||||||
Detailed changes:
|
Detailed changes:
|
||||||
[core] ADDED: SetWindowState() / ClearWindowState() -> New flags added!
|
[core] ADDED: SetWindowState() / ClearWindowState() -> New flags added!
|
||||||
[core] ADDED: IsWindowFocused()
|
[core] ADDED: IsWindowFocused()
|
||||||
|
@ -463,7 +463,7 @@ Detailed changes:
|
||||||
[core] ADDED: GetMonitorRefreshRate() (#1289) by @Shylie
|
[core] ADDED: GetMonitorRefreshRate() (#1289) by @Shylie
|
||||||
[core] ADDED: IsCursorOnScreen() (#1262) by @ChrisDill
|
[core] ADDED: IsCursorOnScreen() (#1262) by @ChrisDill
|
||||||
[core] ADDED: SetMouseCursor() and GetMouseCursor() for standard Desktop cursors (#1407) by @chances
|
[core] ADDED: SetMouseCursor() and GetMouseCursor() for standard Desktop cursors (#1407) by @chances
|
||||||
[core] REMOVED: struct RenderTexture2D: depthTexture variable
|
[core] REMOVED: struct RenderTexture2D: depthTexture variable
|
||||||
[core] REMOVED: HideWindow() / UnhideWindow() -> Use SetWindowState()
|
[core] REMOVED: HideWindow() / UnhideWindow() -> Use SetWindowState()
|
||||||
[core] REMOVED: DecorateWindow() / UndecorateWindow() -> Use SetWindowState()
|
[core] REMOVED: DecorateWindow() / UndecorateWindow() -> Use SetWindowState()
|
||||||
[core] RENAMED: GetExtension() to GetFileExtension()
|
[core] RENAMED: GetExtension() to GetFileExtension()
|
||||||
|
@ -475,7 +475,7 @@ Detailed changes:
|
||||||
[core] REVIEWED: GetPrevDirectoryPath() fixes on Unix-like systems (#1246) by @ivan-cx
|
[core] REVIEWED: GetPrevDirectoryPath() fixes on Unix-like systems (#1246) by @ivan-cx
|
||||||
[core] REPLACED: rgif.h by msf_gif.h for automatic gif recording
|
[core] REPLACED: rgif.h by msf_gif.h for automatic gif recording
|
||||||
[core] REDESIGNED: GetMouseWheelMove() to return float movement for precise scrolling (#1397) by @Doy-lee
|
[core] REDESIGNED: GetMouseWheelMove() to return float movement for precise scrolling (#1397) by @Doy-lee
|
||||||
[core] REDESIGNED: GetKeyPressed(), and added GetCharPressed() (#1336)
|
[core] REDESIGNED: GetKeyPressed(), and added GetCharPressed() (#1336)
|
||||||
[core] UWP rework with improvements (#1231) by @Rover656
|
[core] UWP rework with improvements (#1231) by @Rover656
|
||||||
[core] Gamepad axis bug fixes and improvement (#1228) by @mmalecot
|
[core] Gamepad axis bug fixes and improvement (#1228) by @mmalecot
|
||||||
[core] Updated joystick mappings with latest version of gamecontrollerdb (#1381) by @coderoth
|
[core] Updated joystick mappings with latest version of gamecontrollerdb (#1381) by @coderoth
|
||||||
|
@ -497,19 +497,19 @@ Detailed changes:
|
||||||
[raymath] ADDED: Vector2LengthSqr() and Vector3LengthSqr() (#1248) by @ThePituLegend
|
[raymath] ADDED: Vector2LengthSqr() and Vector3LengthSqr() (#1248) by @ThePituLegend
|
||||||
[raymath] ADDED: Vector2MoveTowards() function (#1233) by @anatagawa
|
[raymath] ADDED: Vector2MoveTowards() function (#1233) by @anatagawa
|
||||||
[raymath] REVIEWED: Some functions consistency (#1197) by @Not-Nik
|
[raymath] REVIEWED: Some functions consistency (#1197) by @Not-Nik
|
||||||
[raymath] REVIEWED: QuaternionFromVector3ToVector3() (#1263) by @jvocaturo
|
[raymath] REVIEWED: QuaternionFromVector3ToVector3() (#1263) by @jvocaturo
|
||||||
[raymath] REVIEWED: MatrixLookAt(), optimized (#1442) by @RandomErrorMessage
|
[raymath] REVIEWED: MatrixLookAt(), optimized (#1442) by @RandomErrorMessage
|
||||||
[shapes] ADDED: CheckCollisionLines(), by @Elkantor
|
[shapes] ADDED: CheckCollisionLines(), by @Elkantor
|
||||||
[text] Avoid [textures] functions dependencies
|
[text] Avoid [textures] functions dependencies
|
||||||
[text] ADDED: Config flag: SUPPORT_TEXT_MANIPULATION
|
[text] ADDED: Config flag: SUPPORT_TEXT_MANIPULATION
|
||||||
[text] ADDED: LoadFontFromMemory() (TTF only) (#1327)
|
[text] ADDED: LoadFontFromMemory() (TTF only) (#1327)
|
||||||
[text] ADDED: UnloadFontData()
|
[text] ADDED: UnloadFontData()
|
||||||
[text] RENAMED: FormatText() -> TextFormat()
|
[text] RENAMED: FormatText() -> TextFormat()
|
||||||
[text] REVIEWED: Font struct, added charsPadding (#1432)
|
[text] REVIEWED: Font struct, added charsPadding (#1432)
|
||||||
[text] REVIEWED: TextJoin()
|
[text] REVIEWED: TextJoin()
|
||||||
[text] REVIEWED: TextReplace() (#1172)
|
[text] REVIEWED: TextReplace() (#1172)
|
||||||
[text] REVIEWED: LoadBMFont() to load data from memory (#1232)
|
[text] REVIEWED: LoadBMFont() to load data from memory (#1232)
|
||||||
[text] REVIEWED: GenImageFontAtlas(), fixed offset (#1171)
|
[text] REVIEWED: GenImageFontAtlas(), fixed offset (#1171)
|
||||||
[text] REDESIGNED: LoadFontData(), reviewed input parameters
|
[text] REDESIGNED: LoadFontData(), reviewed input parameters
|
||||||
[text] REDESIGNED: LoadFontDefault(), some code simplifications
|
[text] REDESIGNED: LoadFontDefault(), some code simplifications
|
||||||
[text] REDESIGNED: LoadFontFromImage(), avoid LoadImageEx()
|
[text] REDESIGNED: LoadFontFromImage(), avoid LoadImageEx()
|
||||||
|
@ -524,10 +524,10 @@ Detailed changes:
|
||||||
[textures] ADDED: DrawTextureTiled() (#1291) - @Demizdor
|
[textures] ADDED: DrawTextureTiled() (#1291) - @Demizdor
|
||||||
[textures] ADDED: UpdateTextureRec()
|
[textures] ADDED: UpdateTextureRec()
|
||||||
[textures] ADDED: UnloadImageColors(), UnloadImagePalette(), UnloadWaveSamples()
|
[textures] ADDED: UnloadImageColors(), UnloadImagePalette(), UnloadWaveSamples()
|
||||||
[textures] REMOVED: Config flag: SUPPORT_IMAGE_DRAWING
|
[textures] REMOVED: Config flag: SUPPORT_IMAGE_DRAWING
|
||||||
[textures] REMOVED: LoadImageEx()
|
[textures] REMOVED: LoadImageEx()
|
||||||
[textures] REMOVED: LoadImagePro()
|
[textures] REMOVED: LoadImagePro()
|
||||||
[textures] REMOVED: GetImageDataNormalized(), not exposed in the API
|
[textures] REMOVED: GetImageDataNormalized(), not exposed in the API
|
||||||
[textures] RENAMED: ImageExtractPalette() to GetImagePalette()
|
[textures] RENAMED: ImageExtractPalette() to GetImagePalette()
|
||||||
[textures] RENAMED: Fade() to ColorAlpha(), added #define for compatibility
|
[textures] RENAMED: Fade() to ColorAlpha(), added #define for compatibility
|
||||||
[textures] RENAMED: GetImageData() -> LoadImageColors()
|
[textures] RENAMED: GetImageData() -> LoadImageColors()
|
||||||
|
@ -539,7 +539,7 @@ Detailed changes:
|
||||||
[textures] REVIEWED: ColorAlphaBlend(), support tint color
|
[textures] REVIEWED: ColorAlphaBlend(), support tint color
|
||||||
[textures] REVIEWED: ColorAlphaBlend(), integers-version, optimized (#1218)
|
[textures] REVIEWED: ColorAlphaBlend(), integers-version, optimized (#1218)
|
||||||
[textures] REVIEWED: ImageDraw(), consider negative source offset properly (#1283)
|
[textures] REVIEWED: ImageDraw(), consider negative source offset properly (#1283)
|
||||||
[textures] REVIEWED: ImageDraw(), optimizations test (#1218)
|
[textures] REVIEWED: ImageDraw(), optimizations test (#1218)
|
||||||
[textures] REVIEWED: ImageResizeCanvas(), optimization (#1218)
|
[textures] REVIEWED: ImageResizeCanvas(), optimization (#1218)
|
||||||
[textures] REVIEWED: ExportImage(), optimized
|
[textures] REVIEWED: ExportImage(), optimized
|
||||||
[textures] REVIEWED: ImageAlphaPremultiply(), optimization
|
[textures] REVIEWED: ImageAlphaPremultiply(), optimization
|
||||||
|
@ -563,27 +563,27 @@ Detailed changes:
|
||||||
[textures] REDESIGNED: ImageDraw(), optimization (#1218)
|
[textures] REDESIGNED: ImageDraw(), optimization (#1218)
|
||||||
[textures] REDESIGNED: ImageAlphaClear(), optimized (#1218)
|
[textures] REDESIGNED: ImageAlphaClear(), optimized (#1218)
|
||||||
[textures] REDESIGNED: ExportImageAsCode() to use memory buffer (#1232)
|
[textures] REDESIGNED: ExportImageAsCode() to use memory buffer (#1232)
|
||||||
[textures] REDESIGNED: ColorFromHSV()
|
[textures] REDESIGNED: ColorFromHSV()
|
||||||
[models] ADDED: DrawTriangle3D() and DrawTriangleStrip3D()
|
[models] ADDED: DrawTriangle3D() and DrawTriangleStrip3D()
|
||||||
[models] ADDED: UnloadModelKeepMeshes()
|
[models] ADDED: UnloadModelKeepMeshes()
|
||||||
[models] REVIEWED: LoadModel(), avoid loading texcoords and normals from model if not existent
|
[models] REVIEWED: LoadModel(), avoid loading texcoords and normals from model if not existent
|
||||||
[models] REVIEWED: GenMeshCubicmap(), added comments and simplification
|
[models] REVIEWED: GenMeshCubicmap(), added comments and simplification
|
||||||
[models] REVIEWED: GenMeshCubicmap(), fixed generated normals (#1244) by @GoldenThumbs
|
[models] REVIEWED: GenMeshCubicmap(), fixed generated normals (#1244) by @GoldenThumbs
|
||||||
[models] REVIEWED: GenMeshPoly(), fixed buffer overflow (#1269) by @frithrah
|
[models] REVIEWED: GenMeshPoly(), fixed buffer overflow (#1269) by @frithrah
|
||||||
[models] REVIEWED: LoadOBJ(): Allow for multiple materials in obj files (#1408) by @chriscamacho and @codifies
|
[models] REVIEWED: LoadOBJ(): Allow for multiple materials in obj files (#1408) by @chriscamacho and @codifies
|
||||||
[models] REVIEWED: LoadIQM() materials loading (#1227) by @sikor666
|
[models] REVIEWED: LoadIQM() materials loading (#1227) by @sikor666
|
||||||
[models] REVIEWED: LoadGLTF() to read from memory buffer
|
[models] REVIEWED: LoadGLTF() to read from memory buffer
|
||||||
[models] REVIEWED: UpdateMesh(), fix extra memory allocated when updating color buffer (#1271) by @4yn
|
[models] REVIEWED: UpdateMesh(), fix extra memory allocated when updating color buffer (#1271) by @4yn
|
||||||
[models] REVIEWED: MeshNormalsSmooth() (#1317) by @seanpringle
|
[models] REVIEWED: MeshNormalsSmooth() (#1317) by @seanpringle
|
||||||
[models] REVIEWED: DrawGrid() (#1417)
|
[models] REVIEWED: DrawGrid() (#1417)
|
||||||
[models] REDESIGNED: ExportMesh() to use memory buffer (#1232)
|
[models] REDESIGNED: ExportMesh() to use memory buffer (#1232)
|
||||||
[models] REDESIGNED: LoadIQM() and LoadModelAnimations() to use memory buffers
|
[models] REDESIGNED: LoadIQM() and LoadModelAnimations() to use memory buffers
|
||||||
[audio] ADDED: LoadWaveFromMemory() (#1327)
|
[audio] ADDED: LoadWaveFromMemory() (#1327)
|
||||||
[audio] REMOVED: SetMusicLoopCount()
|
[audio] REMOVED: SetMusicLoopCount()
|
||||||
[audio] REVIEWED: Several functions, sampleCount vs frameCount (#1423)
|
[audio] REVIEWED: Several functions, sampleCount vs frameCount (#1423)
|
||||||
[audio] REVIEWED: SaveWAV() to use memory write insted of file
|
[audio] REVIEWED: SaveWAV() to use memory write insted of file
|
||||||
[audio] REVIEWED: LoadMusicStream(), support WAV music streaming (#1198)
|
[audio] REVIEWED: LoadMusicStream(), support WAV music streaming (#1198)
|
||||||
[audio] REVIEWED: Support multiple WAV sampleSize for MusicStream (#1340)
|
[audio] REVIEWED: Support multiple WAV sampleSize for MusicStream (#1340)
|
||||||
[audio] REVIEWED: SetAudioBufferPitch()
|
[audio] REVIEWED: SetAudioBufferPitch()
|
||||||
[audio] REDESIGNED: Audio looping system
|
[audio] REDESIGNED: Audio looping system
|
||||||
[audio] REDESIGNED: LoadSound(): Use memory loading (WAV, OGG, MP3, FLAC) (#1312)
|
[audio] REDESIGNED: LoadSound(): Use memory loading (WAV, OGG, MP3, FLAC) (#1312)
|
||||||
|
@ -617,9 +617,9 @@ Detailed changes:
|
||||||
[build] Updated Android build for Linux, supporting ANDROID_NDK at compile time by @branlix3000
|
[build] Updated Android build for Linux, supporting ANDROID_NDK at compile time by @branlix3000
|
||||||
[build] Updated VSCode project template tasks
|
[build] Updated VSCode project template tasks
|
||||||
[build] Updated VS2017.UWP project template by @Rover656
|
[build] Updated VS2017.UWP project template by @Rover656
|
||||||
[build] Updated Android build pipeline
|
[build] Updated Android build pipeline
|
||||||
[build] REMOVED: AppVeyor and Travis CI build systems
|
[build] REMOVED: AppVeyor and Travis CI build systems
|
||||||
[*] Moved raysan5/raylib/games to independent repo: raysan5/raylib-games
|
[*] Moved raysan5/raylib/games to independent repo: raysan5/raylib-games
|
||||||
[*] Replaced several examples resources with more open licensed alternatives
|
[*] Replaced several examples resources with more open licensed alternatives
|
||||||
[*] Updated BINDINGS.md with NEW bindings and added raylib version binding!
|
[*] Updated BINDINGS.md with NEW bindings and added raylib version binding!
|
||||||
[*] Updated all external libraries to latest versions
|
[*] Updated all external libraries to latest versions
|
||||||
|
@ -629,7 +629,7 @@ Detailed changes:
|
||||||
Release: raylib 3.0 (01 April 2020)
|
Release: raylib 3.0 (01 April 2020)
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
KEY CHANGES:
|
KEY CHANGES:
|
||||||
- Global context states used on all modules.
|
- Global context states used on all modules.
|
||||||
- Custom memory allocators for all modules and dependencies.
|
- Custom memory allocators for all modules and dependencies.
|
||||||
- Centralized file access system and memory data loading.
|
- Centralized file access system and memory data loading.
|
||||||
- Structures reviewed to reduce size and always be used as pass-by-value.
|
- Structures reviewed to reduce size and always be used as pass-by-value.
|
||||||
|
@ -638,7 +638,7 @@ KEY CHANGES:
|
||||||
- text module reviewed to improve fonts generation and text management functions.
|
- text module reviewed to improve fonts generation and text management functions.
|
||||||
- Multiple new examples added and categorized examples table.
|
- Multiple new examples added and categorized examples table.
|
||||||
- GitHub Actions CI implemented for Windows, Linux and macOS.
|
- GitHub Actions CI implemented for Windows, Linux and macOS.
|
||||||
|
|
||||||
Detailed changes:
|
Detailed changes:
|
||||||
[build] ADDED: VS2017.ANGLE project, by @msmshazan
|
[build] ADDED: VS2017.ANGLE project, by @msmshazan
|
||||||
[build] ADDED: VS2017 project support for x64 platform configuration
|
[build] ADDED: VS2017 project support for x64 platform configuration
|
||||||
|
@ -872,7 +872,7 @@ Detailed changes:
|
||||||
[rlgl] ADDED: SetShaderValueTexture() - Set shader uniform value for texture
|
[rlgl] ADDED: SetShaderValueTexture() - Set shader uniform value for texture
|
||||||
[rlgl] ADDED: BeginScissorMode() - Begin scissor mode (define screen area for following drawing)
|
[rlgl] ADDED: BeginScissorMode() - Begin scissor mode (define screen area for following drawing)
|
||||||
[rlgl] ADDED: EndScissorMode() - End scissor mode
|
[rlgl] ADDED: EndScissorMode() - End scissor mode
|
||||||
[rlgl] ADDED: SetVrConfiguration() - Set stereo rendering configuration parameters
|
[rlgl] ADDED: SetVrConfiguration() - Set stereo rendering configuration parameters
|
||||||
[rlgl] REVIEWED: InitVrSimulator() - No input parameter required, use SetVrConfiguration()
|
[rlgl] REVIEWED: InitVrSimulator() - No input parameter required, use SetVrConfiguration()
|
||||||
[text] REVIEWED: LoadFontEx() - Reorder function parameters
|
[text] REVIEWED: LoadFontEx() - Reorder function parameters
|
||||||
[text] REVIEWED: LoadFontData() - Reorder function parameters
|
[text] REVIEWED: LoadFontData() - Reorder function parameters
|
||||||
|
@ -1065,10 +1065,10 @@ Detailed changes:
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
Release: raylib 1.8.0 (Oct 2017)
|
Release: raylib 1.8.0 (Oct 2017)
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
NOTE:
|
NOTE:
|
||||||
In this release, multiple parts of the library have been reviewed (again) for consistency and simplification.
|
In this release, multiple parts of the library have been reviewed (again) for consistency and simplification.
|
||||||
It exposes more than 30 new functions in comparison with previous version and it improves overall programming experience.
|
It exposes more than 30 new functions in comparison with previous version and it improves overall programming experience.
|
||||||
|
|
||||||
BIG CHANGES:
|
BIG CHANGES:
|
||||||
- New Image generation functions: Gradient, Checked, Noise, Cellular...
|
- New Image generation functions: Gradient, Checked, Noise, Cellular...
|
||||||
- New Mesh generation functions: Cube, Sphere, Cylinder, Torus, Knot...
|
- New Mesh generation functions: Cube, Sphere, Cylinder, Torus, Knot...
|
||||||
|
@ -1155,9 +1155,9 @@ detailed changes:
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
Release: raylib 1.7.0 (20 May 2017)
|
Release: raylib 1.7.0 (20 May 2017)
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
NOTE:
|
NOTE:
|
||||||
In this new raylib release, multiple parts of the library have been reviewed for consistency and simplification.
|
In this new raylib release, multiple parts of the library have been reviewed for consistency and simplification.
|
||||||
It exposes almost 300 functions, around 30 new functions in comparison with previous version and, again,
|
It exposes almost 300 functions, around 30 new functions in comparison with previous version and, again,
|
||||||
it sets a stepping stone towards raylib future.
|
it sets a stepping stone towards raylib future.
|
||||||
|
|
||||||
BIG changes:
|
BIG changes:
|
||||||
|
@ -1251,8 +1251,8 @@ other changes:
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
Release: raylib 1.6.0 (20 November 2016)
|
Release: raylib 1.6.0 (20 November 2016)
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
NOTE:
|
NOTE:
|
||||||
This new raylib version commemorates raylib 3rd anniversary and represents another complete review of the library.
|
This new raylib version commemorates raylib 3rd anniversary and represents another complete review of the library.
|
||||||
It includes some interesting new features and is a stepping stone towards raylib future.
|
It includes some interesting new features and is a stepping stone towards raylib future.
|
||||||
|
|
||||||
HUGE changes:
|
HUGE changes:
|
||||||
|
@ -1308,8 +1308,8 @@ other changes:
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
Release: raylib 1.5.0 (18 July 2016)
|
Release: raylib 1.5.0 (18 July 2016)
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
NOTE:
|
NOTE:
|
||||||
Probably this new version is the biggest boost of the library ever, lots of parts of the library have been redesigned,
|
Probably this new version is the biggest boost of the library ever, lots of parts of the library have been redesigned,
|
||||||
lots of bugs have been solved and some **AMAZING** new features have been added.
|
lots of bugs have been solved and some **AMAZING** new features have been added.
|
||||||
|
|
||||||
HUGE changes:
|
HUGE changes:
|
||||||
|
@ -1353,7 +1353,7 @@ other changes:
|
||||||
[rlgl] Replaced SetBlendMode() by: BeginBlendMode() - EndBlendMode()
|
[rlgl] Replaced SetBlendMode() by: BeginBlendMode() - EndBlendMode()
|
||||||
[rlgl] Added functions to customize internal matrices: SetMatrixProjection(), SetMatrixModelview()
|
[rlgl] Added functions to customize internal matrices: SetMatrixProjection(), SetMatrixModelview()
|
||||||
[rlgl] Unified internal shaders to only one default shader
|
[rlgl] Unified internal shaders to only one default shader
|
||||||
[rlgl] Added support for render to texture (RenderTexture2D):
|
[rlgl] Added support for render to texture (RenderTexture2D):
|
||||||
LoadRenderTexture() - UnloadRenderTexture()
|
LoadRenderTexture() - UnloadRenderTexture()
|
||||||
BeginTextureMode() - EndTextureMode()
|
BeginTextureMode() - EndTextureMode()
|
||||||
[rlgl] Removed SetShaderMap*() functions
|
[rlgl] Removed SetShaderMap*() functions
|
||||||
|
@ -1399,7 +1399,7 @@ other changes:
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
Release: raylib 1.4.0 (22 February 2016)
|
Release: raylib 1.4.0 (22 February 2016)
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
NOTE:
|
NOTE:
|
||||||
This version supposed another big improvement for raylib, including new modules and new features.
|
This version supposed another big improvement for raylib, including new modules and new features.
|
||||||
More than 30 new functions have been added to previous raylib version.
|
More than 30 new functions have been added to previous raylib version.
|
||||||
Around 8 new examples and +10 new game samples have been added.
|
Around 8 new examples and +10 new game samples have been added.
|
||||||
|
@ -1437,7 +1437,7 @@ other changes:
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
Release: raylib 1.3.0 (01 September 2015)
|
Release: raylib 1.3.0 (01 September 2015)
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
NOTE:
|
NOTE:
|
||||||
This version supposed a big boost for raylib, new modules have been added with lots of features.
|
This version supposed a big boost for raylib, new modules have been added with lots of features.
|
||||||
Most of the modules have been completely reviewed to accomodate to the new features.
|
Most of the modules have been completely reviewed to accomodate to the new features.
|
||||||
Over 50 new functions have been added to previous raylib version.
|
Over 50 new functions have been added to previous raylib version.
|
||||||
|
@ -1453,13 +1453,13 @@ BIG changes:
|
||||||
other changes:
|
other changes:
|
||||||
|
|
||||||
[rlgl] Added check for OpenGL supported extensions
|
[rlgl] Added check for OpenGL supported extensions
|
||||||
[rlgl] Added function SetBlenMode() to select some predefined blending modes
|
[rlgl] Added function SetBlenMode() to select some predefined blending modes
|
||||||
[core] Added support for drop&drag of external files into running program
|
[core] Added support for drop&drag of external files into running program
|
||||||
[core] Added functions ShowCursor(), HideCursor(), IsCursorHidden()
|
[core] Added functions ShowCursor(), HideCursor(), IsCursorHidden()
|
||||||
[core] Renamed function SetFlags() to SetConfigFlags()
|
[core] Renamed function SetFlags() to SetConfigFlags()
|
||||||
[shapes] Simplified some functions to improve performance
|
[shapes] Simplified some functions to improve performance
|
||||||
[textures] Review of Image struct to support multiple data formats
|
[textures] Review of Image struct to support multiple data formats
|
||||||
[textures] Added function LoadImageEx()
|
[textures] Added function LoadImageEx()
|
||||||
[textures] Added function LoadImageRaw()
|
[textures] Added function LoadImageRaw()
|
||||||
[textures] Added function LoadTextureEx()
|
[textures] Added function LoadTextureEx()
|
||||||
[textures] Simplified function parameters LoadTextureFromImage()
|
[textures] Simplified function parameters LoadTextureFromImage()
|
||||||
|
@ -1517,7 +1517,7 @@ Update: raylib 1.2.1 (17 October 2014) (Small Fixes Update)
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
Release: raylib 1.2 (16 September 2014)
|
Release: raylib 1.2 (16 September 2014)
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
NOTE:
|
NOTE:
|
||||||
This version supposed a complete redesign of the [core] module to support Android and Raspberry Pi.
|
This version supposed a complete redesign of the [core] module to support Android and Raspberry Pi.
|
||||||
Multiples modules have also been tweaked to accomodate to the new platforms, specially [rlgl]
|
Multiples modules have also been tweaked to accomodate to the new platforms, specially [rlgl]
|
||||||
|
|
||||||
|
@ -1567,7 +1567,7 @@ Release: raylib 1.1.1 (22 July 2014)
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
Release: raylib 1.1.0 (19 April 2014)
|
Release: raylib 1.1.0 (19 April 2014)
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
NOTE:
|
NOTE:
|
||||||
This version supposed a complete internal redesign of the library to support OpenGL 3.3+ and OpenGL ES 2.0.
|
This version supposed a complete internal redesign of the library to support OpenGL 3.3+ and OpenGL ES 2.0.
|
||||||
New module [rlgl] has been added to 'translate' immediate mode style functions (i.e. rlVertex3f()) to GL 1.1, 3.3+ or ES2.
|
New module [rlgl] has been added to 'translate' immediate mode style functions (i.e. rlVertex3f()) to GL 1.1, 3.3+ or ES2.
|
||||||
Another new module [raymath] has also been added with lot of useful 3D math vector-matrix-quaternion functions.
|
Another new module [raymath] has also been added with lot of useful 3D math vector-matrix-quaternion functions.
|
||||||
|
@ -1603,7 +1603,7 @@ Release: raylib 1.0.6 (16 March 2014)
|
||||||
[core] Removed unused lighting-system code
|
[core] Removed unused lighting-system code
|
||||||
[core] Removed SetPerspective() function, calculated directly
|
[core] Removed SetPerspective() function, calculated directly
|
||||||
[core] Unload and reload default font on fullscreen toggle
|
[core] Unload and reload default font on fullscreen toggle
|
||||||
[core] Corrected bug gamepad buttons checking if no gamepad available
|
[core] Corrected bug gamepad buttons checking if no gamepad available
|
||||||
[texture] DrawTextureV() - Added, to draw using Vector2 for position
|
[texture] DrawTextureV() - Added, to draw using Vector2 for position
|
||||||
[texture] LoadTexture() - Redesigned, now uses LoadImage() + CreateTexture()
|
[texture] LoadTexture() - Redesigned, now uses LoadImage() + CreateTexture()
|
||||||
[text] FormatText() - Corrected memory leak bug
|
[text] FormatText() - Corrected memory leak bug
|
||||||
|
@ -1619,7 +1619,7 @@ Update: raylib 1.0.5 (28 January 2014)
|
||||||
[core] GetMouseWheelMove() - Added, check mouse wheel Y movement
|
[core] GetMouseWheelMove() - Added, check mouse wheel Y movement
|
||||||
[texture] CreateTexture2D() renamed to CreateTexture()
|
[texture] CreateTexture2D() renamed to CreateTexture()
|
||||||
[models] LoadHeightmap() - Added, Heightmap can be loaded as a Model
|
[models] LoadHeightmap() - Added, Heightmap can be loaded as a Model
|
||||||
[tool] rREM updated, now supports (partially) drag and drop of files
|
[tool] rREM updated, now supports (partially) drag and drop of files
|
||||||
|
|
||||||
-----------------------------------------------
|
-----------------------------------------------
|
||||||
Release: raylib 1.0.4 (23 January 2014)
|
Release: raylib 1.0.4 (23 January 2014)
|
||||||
|
|
|
@ -36,11 +36,11 @@ int main(void)
|
||||||
const int screenHeight = 450;
|
const int screenHeight = 450;
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [text] example - codepoints loading");
|
InitWindow(screenWidth, screenHeight, "raylib [text] example - codepoints loading");
|
||||||
|
|
||||||
// Get codepoints from text
|
// Get codepoints from text
|
||||||
int codepointCount = 0;
|
int codepointCount = 0;
|
||||||
int *codepoints = LoadCodepoints(text, &codepointCount);
|
int *codepoints = LoadCodepoints(text, &codepointCount);
|
||||||
|
|
||||||
// Removed duplicate codepoints to generate smaller font atlas
|
// Removed duplicate codepoints to generate smaller font atlas
|
||||||
int codepointsNoDupsCount = 0;
|
int codepointsNoDupsCount = 0;
|
||||||
int *codepointsNoDups = CodepointRemoveDuplicates(codepoints, codepointCount, &codepointsNoDupsCount);
|
int *codepointsNoDups = CodepointRemoveDuplicates(codepoints, codepointCount, &codepointsNoDupsCount);
|
||||||
|
@ -49,13 +49,13 @@ int main(void)
|
||||||
// Load font containing all the provided codepoint glyphs
|
// Load font containing all the provided codepoint glyphs
|
||||||
// A texture font atlas is automatically generated
|
// A texture font atlas is automatically generated
|
||||||
Font font = LoadFontEx("resources/DotGothic16-Regular.ttf", 36, codepointsNoDups, codepointsNoDupsCount);
|
Font font = LoadFontEx("resources/DotGothic16-Regular.ttf", 36, codepointsNoDups, codepointsNoDupsCount);
|
||||||
|
|
||||||
// Set bilinear scale filter for better font scaling
|
// Set bilinear scale filter for better font scaling
|
||||||
SetTextureFilter(font.texture, TEXTURE_FILTER_BILINEAR);
|
SetTextureFilter(font.texture, TEXTURE_FILTER_BILINEAR);
|
||||||
|
|
||||||
// Free codepoints, atlas has already been generated
|
// Free codepoints, atlas has already been generated
|
||||||
free(codepointsNoDups);
|
free(codepointsNoDups);
|
||||||
|
|
||||||
bool showFontAtlas = false;
|
bool showFontAtlas = false;
|
||||||
|
|
||||||
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
SetTargetFPS(60); // Set our game to run at 60 frames-per-second
|
||||||
|
@ -74,7 +74,7 @@ int main(void)
|
||||||
BeginDrawing();
|
BeginDrawing();
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
DrawRectangle(0, 0, GetScreenWidth(), 70, BLACK);
|
DrawRectangle(0, 0, GetScreenWidth(), 70, BLACK);
|
||||||
DrawText(TextFormat("Total codepoints contained in provided text: %i", codepointCount), 10, 10, 20, GREEN);
|
DrawText(TextFormat("Total codepoints contained in provided text: %i", codepointCount), 10, 10, 20, GREEN);
|
||||||
DrawText(TextFormat("Total codepoints required for font atlas (duplicates excluded): %i", codepointsNoDupsCount), 10, 40, 20, GREEN);
|
DrawText(TextFormat("Total codepoints required for font atlas (duplicates excluded): %i", codepointsNoDupsCount), 10, 40, 20, GREEN);
|
||||||
|
@ -90,20 +90,20 @@ int main(void)
|
||||||
// Draw provided text with laoded font, containing all required codepoint glyphs
|
// Draw provided text with laoded font, containing all required codepoint glyphs
|
||||||
DrawTextEx(font, text, (Vector2) { 160, 110 }, 48, 5, BLACK);
|
DrawTextEx(font, text, (Vector2) { 160, 110 }, 48, 5, BLACK);
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawText("Press SPACE to toggle font atlas view!", 10, GetScreenHeight() - 30, 20, GRAY);
|
DrawText("Press SPACE to toggle font atlas view!", 10, GetScreenHeight() - 30, 20, GRAY);
|
||||||
|
|
||||||
EndDrawing();
|
EndDrawing();
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
|
|
||||||
// De-Initialization
|
// De-Initialization
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
UnloadFont(font); // Unload font
|
UnloadFont(font); // Unload font
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
CloseWindow(); // Close window and OpenGL context
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -130,9 +130,9 @@ static int *CodepointRemoveDuplicates(int *codepoints, int codepointCount, int *
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// NOTE: The size of codepointsNoDups is the same as original array but
|
// NOTE: The size of codepointsNoDups is the same as original array but
|
||||||
// only required positions are filled (codepointsNoDupsCount)
|
// only required positions are filled (codepointsNoDupsCount)
|
||||||
|
|
||||||
*codepointsResultCount = codepointsNoDupsCount;
|
*codepointsResultCount = codepointsNoDupsCount;
|
||||||
return codepointsNoDups;
|
return codepointsNoDups;
|
||||||
}
|
}
|
|
@ -17,7 +17,7 @@
|
||||||
|
|
||||||
#define MAP_TILE_SIZE 32 // Tiles size 32x32 pixels
|
#define MAP_TILE_SIZE 32 // Tiles size 32x32 pixels
|
||||||
#define PLAYER_SIZE 16 // Player size
|
#define PLAYER_SIZE 16 // Player size
|
||||||
#define PLAYER_TILE_VISIBILITY 2 // Player can see 2 tiles around its position
|
#define PLAYER_TILE_VISIBILITY 2 // Player can see 2 tiles around its position
|
||||||
|
|
||||||
// Map data type
|
// Map data type
|
||||||
typedef struct Map {
|
typedef struct Map {
|
||||||
|
@ -38,26 +38,26 @@ int main(void)
|
||||||
int screenHeight = 450;
|
int screenHeight = 450;
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [textures] example - fog of war");
|
InitWindow(screenWidth, screenHeight, "raylib [textures] example - fog of war");
|
||||||
|
|
||||||
Map map = { 0 };
|
Map map = { 0 };
|
||||||
map.tilesX = 25;
|
map.tilesX = 25;
|
||||||
map.tilesY = 15;
|
map.tilesY = 15;
|
||||||
|
|
||||||
// NOTE: We can have up to 256 values for tile ids and for tile fog state,
|
// NOTE: We can have up to 256 values for tile ids and for tile fog state,
|
||||||
// probably we don't need that many values for fog state, it can be optimized
|
// probably we don't need that many values for fog state, it can be optimized
|
||||||
// to use only 2 bits per fog state (reducing size by 4) but logic will be a bit more complex
|
// to use only 2 bits per fog state (reducing size by 4) but logic will be a bit more complex
|
||||||
map.tileIds = (unsigned char *)calloc(map.tilesX*map.tilesY, sizeof(unsigned char));
|
map.tileIds = (unsigned char *)calloc(map.tilesX*map.tilesY, sizeof(unsigned char));
|
||||||
map.tileFog = (unsigned char *)calloc(map.tilesX*map.tilesY, sizeof(unsigned char));
|
map.tileFog = (unsigned char *)calloc(map.tilesX*map.tilesY, sizeof(unsigned char));
|
||||||
|
|
||||||
// Load map tiles (generating 2 random tile ids for testing)
|
// Load map tiles (generating 2 random tile ids for testing)
|
||||||
// NOTE: Map tile ids should be probably loaded from an external map file
|
// NOTE: Map tile ids should be probably loaded from an external map file
|
||||||
for (int i = 0; i < map.tilesY*map.tilesX; i++) map.tileIds[i] = GetRandomValue(0, 1);
|
for (int i = 0; i < map.tilesY*map.tilesX; i++) map.tileIds[i] = GetRandomValue(0, 1);
|
||||||
|
|
||||||
// Player position on the screen (pixel coordinates, not tile coordinates)
|
// Player position on the screen (pixel coordinates, not tile coordinates)
|
||||||
Vector2 playerPosition = { 180, 130 };
|
Vector2 playerPosition = { 180, 130 };
|
||||||
int playerTileX = 0;
|
int playerTileX = 0;
|
||||||
int playerTileY = 0;
|
int playerTileY = 0;
|
||||||
|
|
||||||
// Render texture to render fog of war
|
// Render texture to render fog of war
|
||||||
// NOTE: To get an automatic smooth-fog effect we use a render texture to render fog
|
// NOTE: To get an automatic smooth-fog effect we use a render texture to render fog
|
||||||
// at a smaller size (one pixel per tile) and scale it on drawing with bilinear filtering
|
// at a smaller size (one pixel per tile) and scale it on drawing with bilinear filtering
|
||||||
|
@ -77,7 +77,7 @@ int main(void)
|
||||||
if (IsKeyDown(KEY_LEFT)) playerPosition.x -= 5;
|
if (IsKeyDown(KEY_LEFT)) playerPosition.x -= 5;
|
||||||
if (IsKeyDown(KEY_DOWN)) playerPosition.y += 5;
|
if (IsKeyDown(KEY_DOWN)) playerPosition.y += 5;
|
||||||
if (IsKeyDown(KEY_UP)) playerPosition.y -= 5;
|
if (IsKeyDown(KEY_UP)) playerPosition.y -= 5;
|
||||||
|
|
||||||
// Check player position to avoid moving outside tilemap limits
|
// Check player position to avoid moving outside tilemap limits
|
||||||
if (playerPosition.x < 0) playerPosition.x = 0;
|
if (playerPosition.x < 0) playerPosition.x = 0;
|
||||||
else if ((playerPosition.x + PLAYER_SIZE) > (map.tilesX*MAP_TILE_SIZE)) playerPosition.x = map.tilesX*MAP_TILE_SIZE - PLAYER_SIZE;
|
else if ((playerPosition.x + PLAYER_SIZE) > (map.tilesX*MAP_TILE_SIZE)) playerPosition.x = map.tilesX*MAP_TILE_SIZE - PLAYER_SIZE;
|
||||||
|
@ -86,11 +86,11 @@ int main(void)
|
||||||
|
|
||||||
// Previous visited tiles are set to partial fog
|
// Previous visited tiles are set to partial fog
|
||||||
for (int i = 0; i < map.tilesX*map.tilesY; i++) if (map.tileFog[i] == 1) map.tileFog[i] = 2;
|
for (int i = 0; i < map.tilesX*map.tilesY; i++) if (map.tileFog[i] == 1) map.tileFog[i] = 2;
|
||||||
|
|
||||||
// Get current tile position from player pixel position
|
// Get current tile position from player pixel position
|
||||||
playerTileX = (int)((playerPosition.x + MAP_TILE_SIZE/2)/MAP_TILE_SIZE);
|
playerTileX = (int)((playerPosition.x + MAP_TILE_SIZE/2)/MAP_TILE_SIZE);
|
||||||
playerTileY = (int)((playerPosition.y + MAP_TILE_SIZE/2)/MAP_TILE_SIZE);
|
playerTileY = (int)((playerPosition.y + MAP_TILE_SIZE/2)/MAP_TILE_SIZE);
|
||||||
|
|
||||||
// Check visibility and update fog
|
// Check visibility and update fog
|
||||||
// NOTE: We check tilemap limits to avoid processing tiles out-of-array-bounds (it could crash program)
|
// NOTE: We check tilemap limits to avoid processing tiles out-of-array-bounds (it could crash program)
|
||||||
for (int y = (playerTileY - PLAYER_TILE_VISIBILITY); y < (playerTileY + PLAYER_TILE_VISIBILITY); y++)
|
for (int y = (playerTileY - PLAYER_TILE_VISIBILITY); y < (playerTileY + PLAYER_TILE_VISIBILITY); y++)
|
||||||
|
@ -108,31 +108,31 @@ int main(void)
|
||||||
if (map.tileFog[y*map.tilesX + x] == 0) DrawRectangle(x, y, 1, 1, BLACK);
|
if (map.tileFog[y*map.tilesX + x] == 0) DrawRectangle(x, y, 1, 1, BLACK);
|
||||||
else if (map.tileFog[y*map.tilesX + x] == 2) DrawRectangle(x, y, 1, 1, Fade(BLACK, 0.8f));
|
else if (map.tileFog[y*map.tilesX + x] == 2) DrawRectangle(x, y, 1, 1, Fade(BLACK, 0.8f));
|
||||||
EndTextureMode();
|
EndTextureMode();
|
||||||
|
|
||||||
BeginDrawing();
|
BeginDrawing();
|
||||||
|
|
||||||
ClearBackground(RAYWHITE);
|
ClearBackground(RAYWHITE);
|
||||||
|
|
||||||
for (int y = 0; y < map.tilesY; y++)
|
for (int y = 0; y < map.tilesY; y++)
|
||||||
{
|
{
|
||||||
for (int x = 0; x < map.tilesX; x++)
|
for (int x = 0; x < map.tilesX; x++)
|
||||||
{
|
{
|
||||||
// Draw tiles from id (and tile borders)
|
// Draw tiles from id (and tile borders)
|
||||||
DrawRectangle(x*MAP_TILE_SIZE, y*MAP_TILE_SIZE, MAP_TILE_SIZE, MAP_TILE_SIZE,
|
DrawRectangle(x*MAP_TILE_SIZE, y*MAP_TILE_SIZE, MAP_TILE_SIZE, MAP_TILE_SIZE,
|
||||||
(map.tileIds[y*map.tilesX + x] == 0)? BLUE : Fade(BLUE, 0.9f));
|
(map.tileIds[y*map.tilesX + x] == 0)? BLUE : Fade(BLUE, 0.9f));
|
||||||
DrawRectangleLines(x*MAP_TILE_SIZE, y*MAP_TILE_SIZE, MAP_TILE_SIZE, MAP_TILE_SIZE, Fade(DARKBLUE, 0.5f));
|
DrawRectangleLines(x*MAP_TILE_SIZE, y*MAP_TILE_SIZE, MAP_TILE_SIZE, MAP_TILE_SIZE, Fade(DARKBLUE, 0.5f));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw player
|
// Draw player
|
||||||
DrawRectangleV(playerPosition, (Vector2){ PLAYER_SIZE, PLAYER_SIZE }, RED);
|
DrawRectangleV(playerPosition, (Vector2){ PLAYER_SIZE, PLAYER_SIZE }, RED);
|
||||||
|
|
||||||
|
|
||||||
// Draw fog of war (scaled to full map, bilinear filtering)
|
// Draw fog of war (scaled to full map, bilinear filtering)
|
||||||
DrawTexturePro(fogOfWar.texture, (Rectangle){ 0, 0, fogOfWar.texture.width, -fogOfWar.texture.height },
|
DrawTexturePro(fogOfWar.texture, (Rectangle){ 0, 0, fogOfWar.texture.width, -fogOfWar.texture.height },
|
||||||
(Rectangle){ 0, 0, map.tilesX*MAP_TILE_SIZE, map.tilesY*MAP_TILE_SIZE },
|
(Rectangle){ 0, 0, map.tilesX*MAP_TILE_SIZE, map.tilesY*MAP_TILE_SIZE },
|
||||||
(Vector2){ 0, 0 }, 0.0f, WHITE);
|
(Vector2){ 0, 0 }, 0.0f, WHITE);
|
||||||
|
|
||||||
// Draw player current tile
|
// Draw player current tile
|
||||||
DrawText(TextFormat("Current tile: [%i,%i]", playerTileX, playerTileY), 10, 10, 20, LIME);
|
DrawText(TextFormat("Current tile: [%i,%i]", playerTileX, playerTileY), 10, 10, 20, LIME);
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@ int main(void)
|
||||||
free(map.tileFog); // Free allocated map tile fog state
|
free(map.tileFog); // Free allocated map tile fog state
|
||||||
|
|
||||||
UnloadRenderTexture(fogOfWar); // Unload render texture
|
UnloadRenderTexture(fogOfWar); // Unload render texture
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
CloseWindow(); // Close window and OpenGL context
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -27,22 +27,22 @@ int main(void)
|
||||||
const int screenHeight = 450;
|
const int screenHeight = 450;
|
||||||
|
|
||||||
InitWindow(screenWidth, screenHeight, "raylib [textures] example - gif playing");
|
InitWindow(screenWidth, screenHeight, "raylib [textures] example - gif playing");
|
||||||
|
|
||||||
int animFrames = 0;
|
int animFrames = 0;
|
||||||
|
|
||||||
// Load all GIF animation frames into a single Image
|
// Load all GIF animation frames into a single Image
|
||||||
// NOTE: GIF data is always loaded as RGBA (32bit) by default
|
// NOTE: GIF data is always loaded as RGBA (32bit) by default
|
||||||
// NOTE: Frames are just appended one after another in image.data memory
|
// NOTE: Frames are just appended one after another in image.data memory
|
||||||
Image imScarfyAnim = LoadImageAnim("resources/scarfy_run.gif", &animFrames);
|
Image imScarfyAnim = LoadImageAnim("resources/scarfy_run.gif", &animFrames);
|
||||||
|
|
||||||
// Load texture from image
|
// Load texture from image
|
||||||
// NOTE: We will update this texture when required with next frame data
|
// NOTE: We will update this texture when required with next frame data
|
||||||
// WARNING: It's not recommended to use this technique for sprites animation,
|
// WARNING: It's not recommended to use this technique for sprites animation,
|
||||||
// use spritesheets instead, like illustrated in textures_sprite_anim example
|
// use spritesheets instead, like illustrated in textures_sprite_anim example
|
||||||
Texture2D texScarfyAnim = LoadTextureFromImage(imScarfyAnim);
|
Texture2D texScarfyAnim = LoadTextureFromImage(imScarfyAnim);
|
||||||
|
|
||||||
unsigned int nextFrameDataOffset = 0; // Current byte offset to next frame in image.data
|
unsigned int nextFrameDataOffset = 0; // Current byte offset to next frame in image.data
|
||||||
|
|
||||||
int currentAnimFrame = 0; // Current animation frame to load and draw
|
int currentAnimFrame = 0; // Current animation frame to load and draw
|
||||||
int frameDelay = 8; // Frame delay to switch between animation frames
|
int frameDelay = 8; // Frame delay to switch between animation frames
|
||||||
int frameCounter = 0; // General frames counter
|
int frameCounter = 0; // General frames counter
|
||||||
|
@ -56,23 +56,23 @@ int main(void)
|
||||||
// Update
|
// Update
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
frameCounter++;
|
frameCounter++;
|
||||||
if (frameCounter >= frameDelay)
|
if (frameCounter >= frameDelay)
|
||||||
{
|
{
|
||||||
// Move to next frame
|
// Move to next frame
|
||||||
// NOTE: If final frame is reached we return to first frame
|
// NOTE: If final frame is reached we return to first frame
|
||||||
currentAnimFrame++;
|
currentAnimFrame++;
|
||||||
if (currentAnimFrame >= animFrames) currentAnimFrame = 0;
|
if (currentAnimFrame >= animFrames) currentAnimFrame = 0;
|
||||||
|
|
||||||
// Get memory offset position for next frame data in image.data
|
// Get memory offset position for next frame data in image.data
|
||||||
nextFrameDataOffset = imScarfyAnim.width*imScarfyAnim.height*4*currentAnimFrame;
|
nextFrameDataOffset = imScarfyAnim.width*imScarfyAnim.height*4*currentAnimFrame;
|
||||||
|
|
||||||
// Update GPU texture data with next frame image data
|
// Update GPU texture data with next frame image data
|
||||||
// WARNING: Data size (frame size) and pixel format must match already created texture
|
// WARNING: Data size (frame size) and pixel format must match already created texture
|
||||||
UpdateTexture(texScarfyAnim, ((unsigned char *)imScarfyAnim.data) + nextFrameDataOffset);
|
UpdateTexture(texScarfyAnim, ((unsigned char *)imScarfyAnim.data) + nextFrameDataOffset);
|
||||||
|
|
||||||
frameCounter = 0;
|
frameCounter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Control frames delay
|
// Control frames delay
|
||||||
if (IsKeyPressed(KEY_RIGHT)) frameDelay++;
|
if (IsKeyPressed(KEY_RIGHT)) frameDelay++;
|
||||||
else if (IsKeyPressed(KEY_LEFT)) frameDelay--;
|
else if (IsKeyPressed(KEY_LEFT)) frameDelay--;
|
||||||
|
@ -90,7 +90,7 @@ int main(void)
|
||||||
DrawText(TextFormat("TOTAL GIF FRAMES: %02i", animFrames), 50, 30, 20, LIGHTGRAY);
|
DrawText(TextFormat("TOTAL GIF FRAMES: %02i", animFrames), 50, 30, 20, LIGHTGRAY);
|
||||||
DrawText(TextFormat("CURRENT FRAME: %02i", currentAnimFrame), 50, 60, 20, GRAY);
|
DrawText(TextFormat("CURRENT FRAME: %02i", currentAnimFrame), 50, 60, 20, GRAY);
|
||||||
DrawText(TextFormat("CURRENT FRAME IMAGE.DATA OFFSET: %02i", nextFrameDataOffset), 50, 90, 20, GRAY);
|
DrawText(TextFormat("CURRENT FRAME IMAGE.DATA OFFSET: %02i", nextFrameDataOffset), 50, 90, 20, GRAY);
|
||||||
|
|
||||||
DrawText("FRAMES DELAY: ", 100, 305, 10, DARKGRAY);
|
DrawText("FRAMES DELAY: ", 100, 305, 10, DARKGRAY);
|
||||||
DrawText(TextFormat("%02i frames", frameDelay), 620, 305, 10, DARKGRAY);
|
DrawText(TextFormat("%02i frames", frameDelay), 620, 305, 10, DARKGRAY);
|
||||||
DrawText("PRESS RIGHT/LEFT KEYS to CHANGE SPEED!", 290, 350, 10, DARKGRAY);
|
DrawText("PRESS RIGHT/LEFT KEYS to CHANGE SPEED!", 290, 350, 10, DARKGRAY);
|
||||||
|
@ -113,7 +113,7 @@ int main(void)
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
UnloadTexture(texScarfyAnim); // Unload texture
|
UnloadTexture(texScarfyAnim); // Unload texture
|
||||||
UnloadImage(imScarfyAnim); // Unload image (contains all frames)
|
UnloadImage(imScarfyAnim); // Unload image (contains all frames)
|
||||||
|
|
||||||
CloseWindow(); // Close window and OpenGL context
|
CloseWindow(); // Close window and OpenGL context
|
||||||
//--------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue