* Added a new utility function to get the current monitor.
Some of the other functions rely on passing on a monitor id but we only have a function for querying the count of monitors available.
* Updated the comment to correctly reflect the function action
This monitor should even probably be passed as an id instead to make it more consistent with the rest of the API but this would break existing applications so I am hesitant to change the function signature directly.
* Add a function to know if two lines intersect each other and if yes, get the intersection point
* Remove indents
* Rework the declaration of the 'Vector2LineIntersect' function, and add the 'Vector2SegmentIntersect' function
* Remove bad indents
* Fix compilation issues
* Fix compilation error
* Fix compilation error
* Replace keyword '_Bool' by 'bool'
Pefixing/Suffixing some data type identifier in the variables is not a convention used in raylib, just reviewed it for consistency...
Still, I kept the *Rec suffix in some functions.
Previous implementation did not consider any padding while drawing the characters on screen (despite being available on the font atlas), so, only minimum character area was drawn.
If some text effect shader was required (shadow, glow, outline...), there was no space in the drawn quad to draw that pixels effect.
This commit corrects that issue.
This is a BREAKING CHANGE!
To address the linked issue, several functions have been renamed and couterpart functions have been created to free loaded memory:
- RENAMED: GetImageData() -> LoadImageColors()
- RENAMED: GetImagePalette() -> LoadImagePalette()
- RENAMED: GetWaveData() -> LoadWaveSamples()
- ADDED: UnloadImageColors()
- ADDED: UnloadImagePalette()
- ADDED: UnloadWaveSamples()
Previous GetKeyPressed() method was actually returning unicode codepoints equivalent values instead of the key-code of the pressed key. So, it has been replaced by GetCharPressed(), returning unicode codepoints and GetKeyPressed() now returns key-codes.
* Changed extension for web from .bc to .a
I did this to support vcpkg expectation. When using the library from vcpkg for web you would install it using vcpkg install raylib:wasm32-emscripten but also vcpkg expects the output lib to be with .a extension instead of .bc
Doesn't make a difference for standalone builds or when raylib is used as a subdirectory dependency.
* Added headers to install targets to fix vcpkg usage
Currently vcpkg works by installing the cmake target into its packages directory. The problem is that install only copies the public header at this point so we need to add the others to the install targets.
I did this to support vcpkg expectation. When using the library from vcpkg for web you would install it using vcpkg install raylib:wasm32-emscripten but also vcpkg expects the output lib to be with .a extension instead of .bc
Doesn't make a difference for standalone builds or when raylib is used as a subdirectory dependency.
* Fixed the build for web using CMake.
I found that the build for me was failing and I added some if defined checks in the core.c file where the glfwSetWindowAttrib was used. (error: implicit declaration of function 'glfwSetWindowAttrib' is invalid in C99 [-Werror,-Wimplicit-function-declaration])
I also changed some values in the toolchain file so that it correctly uses the .bat files when on windows.
* Cleaned up the additional variables (they are not important)
* Added more improvements to cmakelists
Added the option to use the system provided Emscripten toolchain to be more uniform with other libraries.
Fixed and issue which prevented example being built from cmake and also building with html extensions properly.
* Fixed ENUM to STRING because of a missed warning
WARNING: Several functions removed, replaced by SetWindowState() / ClearWindowState() equivalents, only for advance users.
ADDED: ClearWindowState() to reset window state
REMOVED: HideWindow() / UnhideWindow()
REMOVED: DecorateWindow() / UndecorateWindow()
There were some problems about frameCount vs sampleCount that could cause some breaks.
raylib audio structs stores sampleCount = frameCount*channels.
Most libraries return framesCount instead of sampleCount.
stb_vorbis seems to refer to framesCount as samples.
All required functions have been reviewed.
There is no zero-check, so window upscales to nothing.
SetupFramebuffer() is kinda wrong, it uses not its params, but global variables. I won't touch it, maybe it has purpose
Vector3Reflect exists but not Vector2Reflect. The code is pretty much the same.
I'm not sure what RMDEF does, but I added it to match other function definitions (haven't done much C programming, maybe I'm missing something). Can someone explain to me what it does?
* updated README.md
* fixed CMakeLists.txt to allow building and debugging with Visual Studio Code and CMAKE Tools extension
* added PLATFORM_DRM
contains mouse pointer code from https://github.com/chriscamacho
* removed redundant cleanup in InitGraphicsDevice
* fixed DRM connector mode selection
* added choosen DRM connected mode to log output
* added respecting TargetFPS on DRM mode selection, default to 60
* added support for GetMonitorRefreshRate
* changed SUPPORT_MOUSE_CURSOR_RPI to SUPPORT_MOUSE_CURSOR_NATIVE
* changed avoidProgressive to allowInterlaced
* cleanup, function extraction and improved mode selection
* README reverted to original for PR
* line endings fixed for core.c
* removed old code
* mouse pointer reverted to small square
* replaced SetGraphicDeviceName() by DEFAULT_GRAPHIC_DEVICE_DRM
Co-authored-by: kernelkinetic <kernelkinetic@outlook.com>
Function has been reviewed to avoid any direct OpenGL call and use rlgl functionality, also, GenDrawCube() has been replaced by the internal batch system with DrawCube().
WARNING: rlEnableTexture() call must be issued after enabling the current framebuffer when using batch mechanism because it includes a set of security checks to avoid batch overflow and push/pop matrix operations.
* fixed wrong error message for input device
* error message without errnofor input device on RPI
to prevent from including additional header
Co-authored-by: kkl <klingenberger@bfmc.de>
This redesign allows more flexibility when creating RenderTexture and a simplification (and hopefully removal) of `GenTexture*()` functions, that should not belong to this model but the user code, due to the use of custom shaders.
Also, this new API opens the door for a possible GBuffers type and advance rendering possibilities...
Some functions of the API have been also simplified or even removed.
rlgl module can be used as an standalone library, so, a version for the library has been added: v3.1.0, matching current raylib version.
Before deleting certain objects, they must be detached from their parents. That's the case for shader objects after linkage to shader program and also for the texture/cubemaps/renderbuffers attached to framebuffers. If objects are deleted before detached, they are kept in memory to avoid accessing deleted data.