Commit Graph

53 Commits

Author SHA1 Message Date
Lynix 2cace84c90 Math/Matrix4: Fix computations.
Sometimes some values can be really small (and very close to zero) without being null.


Former-commit-id: 932160043e4eb4094c7234f8cf4eb7c212966678
2016-01-15 01:04:29 +01:00
Gawaboumga f131fd2121 Documentation for Matrix4 + Check for affine
Former-commit-id: 9ddb4e85f860b12d06afaa2d32139bea4053eb66
2015-12-30 15:32:09 +01:00
Lynix eaf1bb3601 Merge branch 'NDK-Refactor' into NDK
Conflicts:
	examples/HardwareInfo/main.cpp
	include/Nazara/Renderer/Enums.hpp
	include/Nazara/Renderer/GpuQuery.hpp
	include/Nazara/Renderer/OpenGL.hpp
	include/Nazara/Renderer/RenderBuffer.hpp
	include/Nazara/Renderer/RenderTexture.hpp
	include/Nazara/Renderer/Texture.hpp
	src/Nazara/Graphics/AbstractRenderTechnique.cpp
	src/Nazara/Graphics/DeferredRenderTechnique.cpp
	src/Nazara/Graphics/Material.cpp
	src/Nazara/Graphics/SkyboxBackground.cpp
	src/Nazara/Renderer/GpuQuery.cpp
	src/Nazara/Renderer/OpenGL.cpp
	src/Nazara/Renderer/RenderBuffer.cpp
	src/Nazara/Renderer/RenderTexture.cpp
	src/Nazara/Renderer/Renderer.cpp
	src/Nazara/Renderer/Shader.cpp
	src/Nazara/Renderer/ShaderStage.cpp
	src/Nazara/Renderer/Texture.cpp

Former-commit-id: 2f1c7e9f9766f59ab83d9405856a1898ac4ab48f
2015-09-25 23:16:58 +02:00
Lynix df8da275c4 Switch from Nz prefix to namespace Nz
What a huge commit


Former-commit-id: 38ac5eebf70adc1180f571f6006192d28fb99897
2015-09-25 19:20:05 +02:00
Lynix 505f1dbb03 Merge branch 'master' into NDK
Conflicts:
	include/Nazara/Core/Algorithm.inl
	include/Nazara/Core/ByteArray.hpp
	include/Nazara/Math/Algorithm.inl
	src/Nazara/Graphics/SkyboxBackground.cpp

Former-commit-id: 42f52f71989fa805f69527fd07edb8405df06566
2015-08-21 18:55:58 +02:00
Gawaboumga 282bdf9864 Consequences of the plane change + change perspective
The perspective matrix now as in glm (because the near frustum plane was
wrong). So there is a factor "2" on the component w and the skybox must
be changed in consequence.


Former-commit-id: 09dd049c177532b9ace34a5a60b1b96014652297
2015-08-21 12:01:52 +02:00
Lynix b0f418c481 Math/Matrix4: Add GetSquaredScale() method
Former-commit-id: c1ce74560b735dbcd5a4c377a7577a9d2c1bae09
2015-05-26 23:38:06 +02:00
Lynix 55b94f2bbf Math/Matrix: Removed deprecated comment
Former-commit-id: f29b0b453b1313e991f783e8e3be183faa29d8bd
2015-05-06 23:33:07 +02:00
Lynix ea8d683624 Updated copyright year
(532 files, wow)


Former-commit-id: cbb31f1124a86720bd3a54fe589a0f849a87b434
2015-01-21 20:53:01 +01:00
Lynix 5ae54677f1 Fixed Matrix4::IsIdentity()
Former-commit-id: 7f3dfb47241ec2625e7ba02decb53ad5fd3d60ac
2014-12-07 03:04:04 +01:00
Lynix d9cce5d7ce Fixed compilation error
Former-commit-id: febc503b22cedaa4edf0efe3677cf38a205d7230
2014-07-29 10:30:49 +02:00
Lynix 454a5b1281 Added Matrix4::Get[Column|Row]
Former-commit-id: 5dc655f97d8523714c69627e70b3bf8dfdcdb1ae
2014-07-28 16:16:32 +02:00
Lynix 60d5c09c18 Renamed Basic.hpp to Algorithm.hpp
Former-commit-id: ba2858d26fb55069313fafc3e4464dc2e9224b7d
2014-07-28 15:18:39 +02:00
Lynix b51845d88f Added Matrix4::Concatenate static method
Former-commit-id: 842e86a89fb7468552d6a9473a228bfb7a8a3809
2014-07-08 16:15:05 +02:00
Lynix eceabcd241 Fixed some of the pull request code in order to merge it
Former-commit-id: 76d71f15b335535e7dfcaf986440a00e85e45c1b
2014-06-15 01:55:07 +02:00
Gawaboumga 676ed6c9d8 Correction of mathematical functions.
BoundingVolume: Add of constructor and setter OrientedBox. Extend is now
up to date.
Box: Use of <T>. Return this
Frustrum: Use of <T>
Matrix: Use of <T>
OrientedBox: m_corners is up to date
Rect: Add of operators /= and /. Return this
Sphere: Add of Intersect and Contains with box. Little corrections.
Vector2: Return

TaskSchedulerImpl: Add of include header cstdlib to compile because of
std::div
HardwareInfo/main: use of accentAigu

Former-commit-id: a5a7f8e8c45448e5683eb13bff453d6f67478d03
2014-06-14 22:10:37 +02:00
Lynix 1ba07cf69c Removed Matrix4 "identity optimization"
Returned Matrix4 to a POD type


Former-commit-id: 658f7d41b5d5f7d70b9d6531456ae2e498c469d2
2014-04-20 14:29:55 +02:00
Lynix c096756dab Happy thousandth commit Nazara
Updated copyright year (Yay, 515 file updated)
Regenerated global headers
Fixed some typo
Improved some shaders
-Blah blah blah-

Thank you all for supporting my project !
-Lynix


Former-commit-id: e4e741b318ba4f203da5ffd265bd5e516e7ffd7d
2014-01-12 20:16:21 +01:00
Lynix 5d0ed4f27c Removed warning when Matrix4 is not invertible
Former-commit-id: d16c6153dfafadc628cb9af9e4ed707045833616
2013-08-22 10:50:39 +02:00
Lynix 26f120cc66 Fixed Matrix4::[Make]Ortho parameters name
Former-commit-id: ad6a90025e6502ceff9add2c5ecd6c7b83483f38
2013-08-21 19:39:04 +02:00
Lynix 35bd693216 Fixed Matrix4::(Make)Ortho
Former-commit-id: fb65916496b8c28c21dcaf6c623ab1427a6e7767
2013-08-16 00:23:03 +02:00
Lynix f4ef89bb32 Made Matrix4::ConcatenateAffine more robust
Former-commit-id: 7d6f74959b29a597fa9b08d8d3c58fbaf9e2555e
2013-06-27 18:56:05 +02:00
Lynix 7f9455b947 Added Matrix4::(Make)ViewMatrix
Former-commit-id: 4a21da456f90c5d0c53c291885b3a214be893b5e
2013-06-10 16:41:25 +02:00
Lynix a478926570 Fixed (I hope) Matrix4::GetRotation()
Former-commit-id: 9480437dde664034d7e44c81a3931922c215b646
2013-06-09 16:00:44 +02:00
Lynix a3f1417abd Added Matrix4::Apply[Rotation|Translation]
Former-commit-id: 1c59aa48f057d4bdc4b4413e349d2b4290dec055
2013-06-03 12:57:20 +02:00
Lynix 465a7c246d Added Identity Matrix optimization
Former-commit-id: c426c3098659f9cf74fd7da33cadabe38a158358
2013-05-30 02:58:20 +02:00
Lynix 6d2a1118bc Implemented Matrix4::GetRotation
Former-commit-id: 90e0b6942497c1337ac3873d3990515284df4aa6
2013-05-16 22:21:16 +02:00
Lynix a8066a58af Added Matrix4::(Make)Transform(T, R)
Former-commit-id: 556554c8cc589dfe64b3a8be903f62af894011c4
2013-05-03 02:50:38 +02:00
Lynix 961c658ae1 Changed Matrix4::(Make)Transform argument pos
To reflect "TRS" transformation
Also removed an useless line


Former-commit-id: b60a70d04797f40f3490b26706740b375fe38421
2013-05-01 01:35:17 +02:00
Lynix c7fdf25432 Added Matrix4::GetDeterminantAffine
Former-commit-id: 404098cc552509039c38e7449b167dbab0385008
2013-03-21 18:29:50 +01:00
Lynix 32b1d02cec Updated copyright texts
Former-commit-id: 81483f7a94935c925e53b7f450e42635b1357833
2013-03-13 23:23:41 +01:00
Lynix b75c04b16a Fixed Matrix4::MakeOrtho
Former-commit-id: 04b75d7c82e34cce4e27b761861747a6375241b3
2013-03-01 18:37:29 +01:00
Lynix 1b5215d4c2 Removed AxisAlignedBox (Replaced by BoundingBox)
Former-commit-id: 931dd6710caf49aeaede51efe209d714f080c44b
2013-02-21 18:28:32 +01:00
Lynix 4a11ff269f Replaced division by multiplication
Former-commit-id: 76c47816b99ed104fc5fd1fe155156f64a053fa1
2013-02-17 23:41:03 +01:00
Lynix 2e4c27188f Fixed math not including some headers
Former-commit-id: a0da804f710d2decf84cd2429d1fedc0df5e49f7
2013-02-17 02:09:10 +01:00
Lynix cdf632ac96 Minor changes to math module
-Fixed missing Set method: "X::Set(const X&)"
-Removed operator String


Former-commit-id: 690f161704ed85fc57a62b812af7933e390572b5
2013-02-16 19:21:14 +01:00
Lynix 2cb1f121a5 Improved readability
Former-commit-id: 8cb71d9f3ba34be26a1133e2f4b118c86a8cc0ed
2013-01-24 00:13:24 +01:00
Lynix 4fbe508960 Removed debug error when copying a matrix
Former-commit-id: 60c57643b5a520abe96fdca83f2d0c28f3bc1f11
2012-11-27 20:25:14 +01:00
Lynix 70ef422950 Big skeletal animation update
Added MeshInfos demo
Added MD5Mesh/MD5Anim loader support
Added Node class
Fixed ResourceParams not being exported
Added support for skeletal animation
(Animation/Mesh/Joint/SkeletalMesh/Skeleton)
Meshes are now only stored with VertexStruct_XYZ_Normal_UV_Tangent type
Moved Sequence declaration to Sequence.hpp

-Animation:
Renamed Create to Create[Keyframe|Skeletal]

-AxisAlignedBox:
Added Contains method
Added GetCorner method
Added GetCube method
Added Transform method

-Cube/Rect:
Added GetPosition method
Added GetSize method
(Almost) Fixed ExtendTo method
Fixed GetCenter method

-File:
Added GetDirectory static function
Added GetPath method
Renamed GetDirectoryPath method to GetDirectory

-Math module:
Fixed constructor/methods taking a non-const array
GetNormal/Normalize methods now takes an optionnal integer pointer
(returning length)
Made all classes default constructor trivial
Inverse, MakeIdentity, MakeZero, Normalize, Set methods now returns
reference to object

-Matrix4:
Modified methods to avoid copies
Removed COW (Too much overhead)
Removed Concatenate[Affine] static function

-Mesh:
Renamed Create to Create[Keyframe|Skeletal|Static]
Renamed Skin to Material

-MeshParams:
No longer takes declaration argument
Renamed loadAnimations to animated
Storage default to BufferStorage_Hardware if supported and
BufferStorage_Software otherwise

-OpenGL:
Added glGetBooleanv function
Added glIsEnabled function

-Quaternion:
Added ComputeW method
Added Conjugate method

-Renderer:
Added IsEnabled static function
Fixed GetLineWidth function not being static
Removed SetVertexDeclaration

-RenderWindow:
Made CopyTo[Image|Texture] method constant

-Resource
Fixed RemoveResourceListener crash

-ResourceLoader:
Loaders are now used in a LIFO context

-Stream:
Renamed GetLine method to ReadLine

-String:
Fixed Simplified

-Utility module
Added configuration define for strict resource parsing

-VertexBuffer
Now takes a VertexDeclaration pointer

-VertexDeclaration
No longer throw an error when getting a non-existing element


Former-commit-id: f7358c1231d6af48b799d2f24f077a001e16785b
2012-11-21 19:20:32 +01:00
Lynix 4c23ccf1c6 (Matrix4) Renamed Destroy to Undefine, fixed bug
Fixed Transpose() not checking COW ownership


Former-commit-id: de2c64b9aef5abf2f73ce6cff2fe8442c1c382c5
2012-10-26 14:08:30 +02:00
Lynix 61c081ace3 Fixed and improved Matrix class (See description)
-Added ApplyScale
-Added Destroy()
-Added GetInverseAffine
-Added Inverse(Affine)
-Added (Make)Transform method, generating a TRS transform matrix
-Fixed COW
-Inverse methods now takes an optionnal boolean pointer


Former-commit-id: 84e7c679c242876f9b0888875b37afa12eed311a
2012-10-24 22:32:46 +02:00
Lynix 94268ae6b2 Fixed typo
Former-commit-id: 3a47a8981692b57ccad50e1044c1139c34bf9c75
2012-10-08 15:35:02 +02:00
Lynix aaca9349fd Fixed Matrix4 equality comparison
Former-commit-id: cb1e21196c2053138a8d70bc09d39ecbf7b83ba8
2012-09-30 23:11:43 +02:00
Lynix a73cd1374a Normalized line ending
Former-commit-id: bd061c48bdc8f0d26159dac3b41017defef5ae1e
2012-09-21 14:24:48 +02:00
Jérôme Leclercq cd5a1b7a5e Added RenderTextures (And many others things)
-Added Forward, left and up vector (Vector3)
-Added Matrix4::ConcatenateAffine shortcut
-Added Quaternion::GetInverse() and Quaternion::Inverse()
-Added Resource listeners
-Added Depth and stencil pixel formats
-All enums now have an ending "max" entry
-Animation/Mesh::Add[Sequence/Skin/SubMesh] now returns a boolean
-Contexts are now resources
-Enhanced AnimatedMesh demo
-Fixed MD2 facing
-Fixed Vector3::CrossProduct
-Made Resource thread-safe
-Made OpenGL translation table global
-Many bugfixes
-MLT will now write malloc failure to the log
-Most of the strcpy were replaced with faster memcpy
-Occlusion queries availability is now always tested
-OpenGL-related includes now requires NAZARA_RENDERER_OPENGL to be
defined to have any effect
-Pixel formats now have a type
-Renamed RenderTarget::IsValid to IsRenderable
-Renamed Quaternion::GetNormalized() to GetNormal()
-Renamed Texture::Bind() to Prepare()
-Renamed VectorX::Make[Ceil|Floor] to Maximize/Minimize
-Removed MATH_MATRIX_COLUMN_MAJOR option (all matrices are column-major)
-Removed RENDERER_ACTIVATE_RENDERWINDOW_ON_CREATION option (Render
windows are active upon their creation)


Former-commit-id: 0d1da1e32c156a958221edf04a5315c75b354450
2012-09-20 22:07:30 +02:00
Lynix 5619ddb0b1 Changed all the files encoding to UTF-8
Named modules in licence informations
2012-08-10 03:21:37 +02:00
Lynix b442ab0bd2 Refactored mathematics module
Added AABBs
Added code examples
Added experimental support for texture arrays (1D/2D)
Added initialisers (new way of initialising modules)
Added global headers (Plus a global header generator script)
Added pattern support for directory
Added support for spinlocks critical section on Windows
Added NzRenderWindow::SetFramerateLimit
Core project now includes Mathematics files
Fixed color implementation using double
Fixed declaration needing renderer include
Fixed MLT not clearing nextFree(File/Line) after Free
Fixed move operators not being noexcept
Fixed thread-safety (Now working correctly - If I'm lucky)
Moved Resource to core
New interface for modules
New interface for the renderer
Put some global functions to anonymous namespace
Removed empty modules
Renamed ThreadCondition to ConditionVariable
Replaced redirect to cerr log option by duplicate to cout
Setting mouse position relative to a window will make this window ignore
the event
Shaders sending methods no longer takes the uniform variable name (it's
using ID instead)
Using new OpenGL 4.3 header
2012-08-08 04:44:17 +02:00
Lynix 06eda4eba9 Added Meshes and Animations (And many more)
Added NzTexture::IsMipmappingSupported
Color::(FromTo)HSV now takes hue and saturation in degrees
Fixed Context::EnsureContext
Fixed COW thread-safety (String, Image, Matrix4)
Fixed Quatenion<T>::operator*(const Vector3<T>&)
Fixed ResourceLoader
Fixed String::Resize with a size of 0
Fixed Texture mipmapping crash
Fixed per-class thread-safety
IndexBuffer and VertexBuffer are now resources
It is now possible to use more than 8 texcoords per shader
Moved all enumerations into separate files (Core/Enums.hpp,
Utility/Enums.hpp, ..)
Removed NzContextParameters::defaultWindow
VertexDeclaration has been rewritten (New interface/COW)
2012-07-13 15:22:14 +02:00
Lynix be0a5d2819 Fixed many bugs
Added NzOpenGL::GetEntry
Activated preprocessor error if not compiling with a C++11 compliant
compiler
Cube can now be constructed with a Rect
Desactived utility option "threaded window" (bugged)
Epured Image interface (No more UpdateFace, use Update with z = the face
you are targetting)
Fixed compilation errors (Thanks to RafBill)
Fixed predefined colors not exported
Fixed uplading pixels not aligned by 4 bytes
Fixed Thumbs.db files not ignored by git
NzImage now supports Filling and Flipping (Horizontally and vertically)
NzImage::Get(Const)Pixels now support pixel location
NzVector(2/3) can now return floatting distance/length with all types
NzVector(2/3/4) can now be constructed by a vector of smaller dimension
Premake now set "-std=c++11" build option for GCC
Renamed NzImage::(Get/Set)Pixel to (Get/Set)PixelColor
Updated new([])/delete([]) in the leaks tracker to the new C++11
signatures
2012-06-15 11:03:43 +02:00
Lynix 9b3f4e794a Added Image
Added pixel format support
Added MemoryStream
Added Rect
Added ResourceLoader
Added generic loader (bmp, gif, hdr, jpg, jpeg, pic, png, psd, tga)
Added PCX loader
Added utility module initializer
Fixed Config.hpp include
Prerequesites.hpp now overwrites _WIN32_WINNT when defined
version is less than requiered version
Renderer's initialisation will implicitly initialize utility module
Removed RENDERER_SINGLETON option
Shaders are now resources
2012-05-21 21:54:13 +02:00