Commit Graph

263 Commits

Author SHA1 Message Date
Ahmad Fatoum
1841afad11
Refactor all #define SUPPORT_* into a config.h
That way, a user needs only to touch a single file to configure what
features raylib is built with.
Include guards are left out intentionally, because config.h should only
be included in source files, not headers.

Later on, config.h can also define the raylib version (#461).
2018-04-07 23:37:48 +02:00
lumaio teon
d2cc5b88df
Removed useless GetCollisionRayMesh and libraylib.a 2018-04-07 03:49:56 -04:00
lumaio teon
d003c23ecf
Added GetCollisionRayModel 2018-04-06 12:04:09 -04:00
Ray
6edf15b9f9 Added funtion: ExportMesh() 2018-04-04 12:00:54 +02:00
Ray
3e0de31424
Merge pull request #504 from Martinfx/master
Fix potential bugs from static analysis
2018-04-02 18:10:38 +02:00
raysan5
375adf86a6 Review math usage to reduce temp variables 2018-04-02 15:16:45 +02:00
maficccc@gmail.com
201007e426 Fix sscanf() without field limits can crash with huge input data 2018-04-02 13:30:20 +02:00
Ray
61e0e4b4f3 Complete review of raymath for API consistency 2018-03-16 13:47:01 +01:00
raysan5
fd5e457bb4 Correct issue with triangleCount 2018-03-11 10:41:49 +01:00
Ray
fd2adbe62d Renamed CalculateBoundingBox() to MeshBoundingBox()
Renamed function for consistency with a possible Mesh manipulation functions (maybe added in a future). Naming follows Image*() manipulation functions.
2018-02-26 12:10:45 +01:00
Ray
a7207dc6d4 Removed tangents generation
It has no sense to be inside LoadOBJ(), mesh processing moved to own functions: MeshTangents() and MeshBinormals(). Not exposed to user yet.
2018-02-26 12:02:05 +01:00
Ray
077bef4286 Support 4 components mesh.tangent data
Added struct Vector4 for convenience
2018-02-24 12:31:32 +01:00
Ray
6d64327a87 Reviewed unloading model data
When UnloadModel() --> UnloadMaterial(), avoid unloading default shader (if used) and avoid unlaoding default texture (if used), that data is managed by raylib internally. The question is... should UnloadModel() also UnloadMaterial()?
2018-02-22 12:39:17 +01:00
raysan5
e7cf03b1e4 Minor tweaks 2017-12-28 19:27:02 +01:00
Ray San
00c34a035c Updated copyright year 2017-12-20 12:37:08 +01:00
Ray San
86df9168e7 Updated raylib VS2015 project 2017-10-19 14:14:18 +02:00
raysan5
20968830c0 Added mesh generation functions 2017-09-18 00:59:22 +02:00
Ray
fb334e2fd1 Testing shapes generation using additional library 2017-09-02 17:42:22 +02:00
raysan5
eeca607506 Review transforms to match OpenGL 1.1 2017-08-04 18:34:51 +02:00
raysan5
c764b3d03e Some tweaks 2017-07-25 18:10:07 +02:00
raysan5
a766e2c480 Updated Vector math to new naming 2017-07-22 22:15:50 +02:00
raysan5
00d2768bc9 Corrected bug on MatrixPerspective()
Some other tweaks...
2017-07-22 10:35:49 +02:00
raysan5
c6cd07c373 Some tweaks raymath related 2017-07-21 17:46:44 +02:00
raysan5
e52032f646 Complete review of raymath
Now it should be coherent with OpenGL math standards
2017-07-21 17:19:28 +02:00
raysan5
2679c4ae9b Review mesh loading and textures generation 2017-07-21 09:34:09 +02:00
raysan5
4c06725461 Removed useless functions
SetMaterialTexture() and UnsetMaterialTexture()... too shader
dependant...
2017-07-20 14:27:17 +02:00
raysan5
52cd5c6324 Corrected some issues
Corrected compilation for OpenGL 1.1
Review mesh data uploading to GPU
2017-07-20 12:26:25 +02:00
raysan5
76c6f0b1e6 Working on PBR system
Moved PBR material loading to example, right decision?
2017-07-19 18:55:32 +02:00
raysan5
d368403a13 Working on PBR materials, renamed some data 2017-07-19 10:09:34 +02:00
raysan5
e893f3629e Corrected some issues 2017-07-17 12:02:46 +02:00
Ray
6546474fa4 Manual integration of material-pbr into develop 2017-07-17 00:33:40 +02:00
raysan5
9f09f6f550 Rename enum LogType names...
...to avoid possible conflicting symbols
2017-07-02 12:35:13 +02:00
Joel Davis
e0c95ede50 Prevent bogus triangle being added when there is whitespace at end of .OBJ file 2017-06-30 23:37:19 -07:00
Ray
0880be638e Renamed RayHitInfo variables 2017-05-10 00:57:48 +02:00
Ray
3bdf367711 Support model.transform
Combine it with transform introduced as function parameters
2017-05-04 17:42:24 +02:00
raysan5
3c99093aed Rename variables for consistency 2017-04-23 12:30:36 +02:00
victorfisac
82577ededc Comment unused variables from tangent calculations 2017-04-06 15:34:04 +02:00
victorfisac
4b7ea25603 Remove testing binormals implementation 2017-04-06 15:33:20 +02:00
victorfisac
0c2a58cf96 Add tangents calculation when loading OBJ file 2017-04-06 15:31:48 +02:00
Ray
080a79f0b0 Added IsFileExtension()
Replaced old GetExtension() function
Make IsFileExtension() public to the API
2017-03-29 00:35:42 +02:00
Ray
b7a8a40e71 Work on configuration flags 2017-03-26 22:49:01 +02:00
Ray
59652c75b4 Review some comments 2017-03-20 20:34:44 +01:00
raysan5
8f5ff64420 Working on file header comments... 2017-03-19 12:52:58 +01:00
Ray
05cff44d0a Improved modules description -IN PROGRESS-
Working in modules configuration flags...
2017-02-16 00:50:02 +01:00
Ray
c85dfd4bc6 Remove unecessary spaces... 2017-01-28 23:02:30 +01:00
Ray
37a64df7b9 Move lighting system out of raylib
Lighting is implemented as a raylib example now
2017-01-27 23:03:08 +01:00
raysan5
658c280669 Lattest PR review
Function names, code formatting...
2017-01-05 19:33:05 +01:00
Joel Davis
d5d391faaf Added RaycastMesh function and example test case 2017-01-02 21:56:25 -08:00
raysan5
d8bf84f118 Added mesh loading functions 2016-12-25 01:59:23 +01:00
Ray
814507906f Improving rRES custom format support -IN PROGRESS-
Start removing old rRES functions.
2016-12-17 19:05:40 +01:00
Ray
377dcb025f Corrected some warnings 2016-12-05 01:14:18 +01:00
raysan5
f7b706263a Some code tweaks
Correcting details that pop-up when testing the different platforms
2016-11-18 13:39:57 +01:00
raysan5
bee283b12b Some tweaks around 2016-11-17 12:55:30 +01:00
raysan5
6d1b712a96 Reviewed modules comments 2016-11-16 18:46:13 +01:00
Ray
4245237892 Corrected SIGSEV bug 2016-11-13 23:47:28 +01:00
Ray
f16f39e8aa code tweaks to avoid some warnings 2016-11-02 00:50:08 +01:00
raysan5
673dcf9436 Comments tweaks 2016-10-31 20:39:03 +01:00
Ray
8f60996b64 Corrected some warnings 2016-10-17 00:03:38 +02:00
raysan5
b082807b0b Removed function: ResolveCollisionCubicmap()
Function was inefficient and should be rewritten from scratch, it
probably neither belongs to this module but an example...
2016-10-03 13:29:01 +02:00
raysan5
7f0880a735 Review spacing formatting
raylib uses spaces between '+' and '-' signs but not between '*' and '/'
signs, it's a chosen convention
2016-09-12 19:36:41 +02:00
raysan5
a9ab516dae Formatting tweaks 2016-08-31 10:27:29 +02:00
Teodor Stoenescu
384602e5b5 Merge remote-tracking branch 'upstream/develop' into develop 2016-08-31 09:32:08 +03:00
Teodor Stoenescu
d0cf19e035 Greater LoadOBJ() flexibility
LoadOBJ can now load objects with having no texture coordinates or
objects having texture coordinates specified as tuples.
2016-08-31 09:24:39 +03:00
raysan5
959a228815 Removed useless spacing 2016-08-16 11:09:55 +02:00
raysan5
852813bdf1 Reviewed formatting 2016-08-15 16:35:25 +02:00
Teodor Stoenescu
6e20037f7d Small fix for GenMeshCubicmap()
This fix allows GenMeshCubicmap() to create cubic maps having cells of
arbitrary sizes.
2016-08-12 21:42:17 +03:00
Ray
eb9072a2f1 Renamed functions for consistency 2016-08-10 12:20:46 +02:00
Ray
2f9abe6e13 Review ResolveCollisionCubicmap()
This function needs to be redesigned or removed...
2016-07-04 01:30:07 +02:00
raysan5
5f7ac64c44 Removed function SetModelTexture()
It's more educational to go through new material system, so, I decide to
remove this function to avoid students confusion...
2016-06-24 19:49:36 +02:00
raysan5
68a02e567d Avoid external variable whiteTexture
To get it, use GetDefaultTexture()
2016-06-11 12:41:03 +02:00
raysan5
3e8427799c Corrected bug on cubemap generation 2016-06-11 10:56:20 +02:00
Ray
17878550b1 Review heades usage
This is a first step toward a bigger project. Some modules could be
ported to header-only to be used as standalone.
2016-06-02 01:26:44 +02:00
raysan5
302ec438dd Removed colTint, tint color is colDiffuse
Tint color could be applied to colDiffuse... but what's the best way?
Replace it? Multiply by? A point to think about...
2016-05-31 18:15:53 +02:00
Ray
caa7bc366b Reviewed DrawLight() function and some tweaks 2016-05-31 00:51:55 +02:00
victorfisac
b0a0c5d431 Added tint color attribute to material data type
It tints all fragments, ignores lighting. Useful for some features like
feedback (damage color, ...).
2016-05-30 19:55:13 +02:00
victorfisac
f2d61d4043 Remove normal depth
Scaling normal depth (y axis) makes disappear the specular of
fragments... So I think it can be removed, it is not a very
useful/important attribute.
2016-05-30 19:43:35 +02:00
victorfisac
2e26ce235d Add Draw3DCircle function and update raylib and rlgl header
Draw3DCircle is useful to draw point lights radius.
2016-05-30 19:18:11 +02:00
victorfisac
dcd6942ed1 Fix small bug and spacing 2016-05-21 18:22:15 +02:00
victorfisac
30941c0dd1 Add Draw3DLine function and fixed MLT glossiness import value
In standard shader, material glossiness is a value from 0 to 1000 like
in MLT files. So, it doesn't need to be normalized.
2016-05-21 18:10:06 +02:00
victorfisac
30c8058fca Add standard lighting (1/3)
- Ambient and lambert lighting added.
- Ambient and diffuse colors linked to standard shader.
- Single light linked to standard shader.
- LoadStandardMaterial() and depending functions added.
2016-05-20 17:18:07 +02:00
victorfisac
3fa6fdacf2 Improved MTL loading shininess value 2016-05-20 14:24:53 +02:00
victorfisac
90c62c4cc0 Fix small warning
Material glossiness is a float type value...
2016-05-20 14:07:50 +02:00
raysan5
dcf5f45f68 Add lighting system -IN PROGRESS-
Improved materials
2016-05-20 12:28:07 +02:00
raysan5
7d1d9ff143 Support DYNAMIC_DRAW mesh loading 2016-05-20 09:36:02 +02:00
raysan5
037edbaa13 Reorganize data for consistency 2016-05-18 13:22:14 +02:00
raysan5
aee5d9a390 Code tweak 2016-05-10 19:24:05 +02:00
raysan5
1ddf594d15 Added support for indexed mesh data 2016-05-10 18:24:28 +02:00
Ray
ac44db26a2 Added reference 2016-05-09 13:16:44 +02:00
Ray
3d0208223a First implementation of MTL loading
Not tested yet
2016-05-09 12:40:59 +02:00
Ray
dc4d5dabcd Added MTL loading info 2016-05-09 01:18:46 +02:00
Ray
f7d4951165 Improved vertex attribs support for models 2016-05-08 23:50:35 +02:00
raysan5
0bcb873cbb Improved mesh support
Depending on mesh data, it can be loaded and default vertex attribute
location points are set, including colors, tangents and texcoords2
2016-05-08 15:24:02 +02:00
raysan5
7ab008878a Library redesign to accomodate materials system 2016-05-07 18:07:15 +02:00
raysan5
a66c8531d6 Some code simplifications 2016-04-03 18:31:42 +02:00
raysan5
136408d8b8 Corrected bug on bounding box
if mesh is not loaded properly it breaks the game!
2016-03-27 19:42:57 +02:00
raysan5
956a6e6f77 Corrected bug and comments on model unloading 2016-03-27 18:34:05 +02:00
raysan5
c9d22c7a14 Redesign to use Material type -IN PROGRESS-
Requires Shader access functions review
2016-03-06 02:05:16 +01:00
raysan5
0d911127d7 Split mesh generation from model loading 2016-03-05 16:17:54 +01:00
raysan5
d8bd8634ab 3d Camera: Added support for field-of-view Y 2016-03-05 13:05:45 +01:00
raysan5
4011c13d4b Updated BoundingBox collision detections 2016-03-01 20:54:02 +01:00
raysan5
6106ab8a2e Added color to DrawBoundigBox() 2016-03-01 20:26:01 +01:00
raysan5
1674465bdc Adjust buffers usage
- Removed DrawQuad() function
- DrawBillboard() uses DrawBillboardRec()
- DrawPlane() uses RL_TRIANGLES
- DrawRectangleV() uses RL_TRIANGLES, that way, [shapes] module uses
only TRIANGLES buffers.
2016-03-01 19:00:12 +01:00
raysan5
8ca6f8c6ec Do not free model mesh 2016-03-01 15:37:01 +01:00
raysan5
823abf666e Reviewed code TODOs 2016-02-12 12:22:56 +01:00
raysan5
685273675b Improved LoadHeightmap() 2016-02-11 15:51:04 +01:00
Ray
df5c64d0be Functions parameters reorganize: Axis and Angle
sin(), cos() functions cached and replaced by float c99 versions sinf(),
cos()
2016-02-02 18:41:01 +01:00
raysan5
3113a20390 Added bounding box calculation 2016-01-25 11:12:31 +01:00
raysan5
08da91047e Some code tweaks 2016-01-23 13:22:13 +01:00
victorfisac
fcd30c5649 Added ray-sphere collision detection 2016-01-20 19:28:47 +01:00
raysan5
efa1c96d19 Adapted raymath as single header library
Added support for single header implementation and also inline functions
support
2016-01-20 18:20:05 +01:00
raysan5
29c618a35e Added some functions (incomplete) 2016-01-19 20:27:41 +01:00
raysan5
fd05d3e353 Rename VertexData struct to Mesh
Reviewed vertex type variables
2016-01-18 13:36:18 +01:00
raysan5
3b4d8442e0 Corrected some float values 2016-01-13 19:30:35 +01:00
victorfisac
1793f2c3b8 Added collision check between ray and box
- Added CheckCollisionRayBox() function.
- Updated and improved core 3d picking example (currently working as
expected).
2016-01-07 16:18:24 +01:00
raysan5
5659249dfa Some tweaks and details review 2015-12-30 13:35:03 +01:00
victorfisac
4db2da9185 Added new matrix location points and extra functions
- New model and view transformation matrix added, useful for shaders.
Modelview matrix not deleted to keep opengl 1.1 pipeline compatibility.

- New extra function added DrawModelWiresEx() to set a rotation and
scale transformations to a wire model drawing.

- Other writing and little audio.c bug fixed.
2015-12-21 16:42:13 +01:00
Ray
2fa7e00f16 Variables initialization 2015-11-05 12:28:45 +01:00
raysan5
94d0e83207 Corrected crazy bug about model textures
On OpenGL ES it was set to use GL_CLAMP_TO_EDGE wrap mode for textures.
On LoadOBJ() texture coordinates were wrongly Y-flipped
2015-09-02 20:36:05 +02:00
raysan5
4879106096 Reviewed to work on Raspberry Pi
[rlgl] Extensions strings loading was redone to avoid a Segmentation
Fault on Raspberry Pi
2015-09-02 01:08:41 +02:00
Ray
a42bfa7794 Added trace log for data unloading 2015-08-05 19:17:56 +02:00
raysan5
36552ff995 Added security check if file not found 2015-08-03 17:27:04 +02:00
raysan5
7834a4e2fc Replaced old mail by twitter user 2015-07-29 21:43:30 +02:00
raysan5
66556b8b47 Added some functions and renamed some others
Added:
- LoadImageRaw()
- ImageCopy()
Renamed:
- GetPixelData() -> GetImageData()
2015-07-13 18:19:29 +02:00
raysan5
bae1bf7b0a Corrected bug on UnloadModel() 2015-06-18 03:08:21 +02:00
raysan5
9572d6c063 Updated postpro shaders system 2015-06-16 20:02:01 +02:00
raysan5
6a4afae5cc Improved ResolveCollisionCubicmap()
Now it supports multiple maps one next to the other
2015-06-02 09:54:51 +02:00
raysan5
eae98e1c34 Big batch of changes, check description:
- Camera system moved to a separate module [camera.c]
- WIP: Added customization functions for camera controls
- Added custom shaders support on batch drawing
- Complete redesign of textures module to support multiple texture
formats (compressed and uncompressed)
2015-05-04 23:46:31 +02:00
raysan5
7d2318c167 WIP on shaders and textures
Moved functions: LoadShader(), UnloadShader()
Add support for PVR textures compressed/uncompressed
WIP: Detect available extensions for compressed textures
2015-04-13 20:15:28 +02:00
raysan5
a632a04a30 Big batch of changes! Check description:
Support multiple texture formats (uncompressed and compressed)
Postprocessing shaders support
Model struct redefined and improved
Extended loading functions for Textures and Models
Simplified functions: DrawPlane(), DrawQuad()
Deleted functions: DrawPlaneEx(), DrawGizmoEx()
Now Text module only depends on Textures module
Shapes: Reviewed functions to low lines/triangles usage
Removed useless tabs and spaces around code
2015-04-06 14:02:29 +02:00
Marc Palau
3cad094edd Changes integration (some WIP, view details)
Corrected GetMouseWheelMove()
Corrected camera system
Reviewed cubicmap resolution (collision detection)
Added QuaternionTransform()
WIP: Raycast system (not working)
WIP: Reviewing axis-angle rotations...
2015-03-02 20:52:58 +01:00
raysan5
c062f8d4fe Redesign shader system and more
Shader system has been completely redesigned
Added support for multiple texture color modes
2015-03-01 16:00:52 +01:00
raysan5
ee4b553c2a Renamed some functions 2015-02-26 13:52:03 +01:00
Marc Palau
3cb4edcbc3 Corrected camera system 2015-02-09 18:35:43 +01:00
raysan5
e1353b9f7d Removed some TODO already done 2015-02-09 18:29:32 +01:00
Marc Palau
77eda6494e Added cubicmap collision detection and resolution 2015-02-04 20:24:23 +01:00
Marc Palau
b926765ce0 Added functions and improvements
LoadCubicmap() supports custom texture rectangle (from texture atlas)
for every cubic-face.
CheckCollision*() for spheres and bounding-boxes.
2015-02-02 20:05:18 +01:00
raysan5
b9e53cd135 Removed useless spaces 2015-02-02 00:53:49 +01:00
raysan5
5104567a24 Some code tweaks 2015-01-18 10:57:30 +01:00
raysan5
0bfd283526 Added support for model color tint
Also, added support for normals on models
2015-01-02 20:59:54 +01:00
raysan5
905b6ec53d Added full support for HTML5 (emscripten)
Corrected some bugs on the way...
Automatically convert textures to POT on RPI and WEB
2014-12-31 18:03:32 +01:00
raysan5
db1ad74ef2 [models] file open error check 2014-12-17 19:32:54 +01:00
raysan5
2e5f58255a Working on rotation math...
[models] Added DrawQuad()
2014-12-16 11:15:56 +01:00
raysan5
d3cf316e40 Added features and corrected bugs...
[core] Added SetMousePosition()
[models] LoadHeightmap() - Corrected textures bug
[raymath] Functions renaming
[WEB] Prepare environment for emscripten!
2014-12-09 13:21:55 +01:00
Palaui
a2c8ddca13 Revert "Corrected some bugs..."
This reverts commit 29d8b48503.
2014-12-09 13:10:28 +01:00
Palaui
29d8b48503 Corrected some bugs...
[core] Added SetMousePosition()
[models] LoadHeightmap() - Corrected textures bug
[raymath] Functions renaming
[WEB] Prepare environment for emscripten!
2014-12-09 13:10:05 +01:00
Palaui
63ed471ed2 Corrected bug on billboards 2014-11-24 17:23:05 +01:00
raysan5
9d27bba23f Small Fixes Update (1.2.1)
View CHANGELOG for description on small fixes and add-ons
2014-10-17 21:11:58 +02:00
raysan5
fc6081fe70 raylib 1.2
This is a huge update. Check CHANGELOG for details
2014-09-16 22:51:31 +02:00
raysan5
d2b98fbb5c Removed useless spaces 2014-09-03 16:51:28 +02:00
raysan5
0b03431c95 Update to version 1.1.1
Check CHANGELOG for a detailed list of changes
2014-07-23 00:06:24 +02:00