Commit Graph

189 Commits

Author SHA1 Message Date
Lynix ad978dc85a Moved normal/tangents generation to submeshes
Former-commit-id: d043284a1a5810b429cc76d8bc071010985a523b
2013-03-29 14:48:23 +01:00
Lynix 3255162d3a Fixed IndexMapper bug (with null index buffer)
Former-commit-id: bbec2fddc8f95cca9c62b0f07dd3d115949224c6
2013-03-29 14:44:46 +01:00
Lynix b86332a51b Refactored TriangleIterator/VertexMapper
Former-commit-id: b8d4fc79142b36519ebe1879276415fe30970d3e
2013-03-29 14:42:55 +01:00
Lynix 5464b3e184 Optimized some format conversions
Thanks to kristofjé


Former-commit-id: f7c0e5da41b7b7b4c967d7ae812b6da517761823
2013-03-23 22:50:13 +01:00
Lynix 8f21a75c43 Reworked ResourceLoader
Former-commit-id: 9809e7fcd3657dfe90a0795986d0918f4ae1823c
2013-03-23 22:49:06 +01:00
Lynix 6a7eb137d7 [Index|Vertex]Buffer::Fill now takes discard arg
Former-commit-id: 384ffdb12d82c1e960249abcaf407ccbfe0939cf
2013-03-20 15:40:37 +01:00
Lynix d969e2ea3e Fixed resource reference bug
Former-commit-id: ee523acdc69ee00580644290b05e72b75ab6513d
2013-03-15 03:12:28 +01:00
Lynix 6c2fb1eb89 Added ResourceRef (Automatic resource reference)
Former-commit-id: 97a0b2732f4dc443b8e1676e68b33b1b53ddf4fb
2013-03-15 03:09:58 +01:00
Lynix 677536c4b2 Updated some error messages
Thanks to Shade "Hawk eye" Master


Former-commit-id: fb18a5aaa9d368ebec271c9016d4058089cefcf5
2013-03-14 00:19:05 +01:00
Lynix 32b1d02cec Updated copyright texts
Former-commit-id: 81483f7a94935c925e53b7f450e42635b1357833
2013-03-13 23:23:41 +01:00
Lynix 9ee273f550 Added ignoreEvent boolean to Mouse::SetPosition
Former-commit-id: 6dcb701a51c7bc58b105dd42f7ad44371fd0c92b
2013-03-13 22:41:47 +01:00
Lynix b2318b5261 Tried to fix Windows unicode messages
Former-commit-id: bf4680a4507545d7d91171efd86e6265c07e7343
2013-03-13 17:49:13 +01:00
Lynix c67b0d709f Added protection
Former-commit-id: 1e5f0c1421fda868a3a1ef59a92cc0a2ca2e5c47
2013-03-12 23:35:59 +01:00
Lynix c55a222324 Improved comments
Former-commit-id: b387e7eb487de22cc06a9a526ad974fc0625879d
2013-03-08 12:17:42 +01:00
Lynix dca6b6d41f Added comment
Former-commit-id: 081cceccdcfeb491606c8d7f36810a7374e50ec9
2013-03-08 01:20:50 +01:00
Lynix 39e54474dd Added Window::Close (soft way to close window)
Former-commit-id: 9d47ed3ed38d62928f3cb6356fed07501b5e92d5
2013-03-08 01:20:26 +01:00
Lynix 9f780ef2bd Optimized Buffer locking/filling
Former-commit-id: 41cb66257f3eeef375086bf51f26230a06ca9eb8
2013-03-06 22:40:15 +01:00
Lynix e26728c424 Removed Keyframe animation type
Former-commit-id: 807c81e9b738dbb443c3101026f7b5bdff32a931
2013-03-05 10:54:58 +01:00
Lynix 636b9d3f50 (Node) Added name getter/setter
Former-commit-id: 56ec0721abfba836a12c8a2de7f7c909f58a6c37
2013-03-02 01:33:58 +01:00
Lynix 8fa54c85a4 Optimized conversion
Former-commit-id: f4c463c1dd42a5f8e90bc7796c88a175ceb2bbef
2013-03-02 00:28:39 +01:00
Lynix 0df64e03ae New mesh policy
Former-commit-id: cc5854d55e1e4bb83e5e081434b87ec22fcb8bff
2013-03-02 00:17:40 +01:00
Lynix d0a6a75f14 Fixed Skeleton AABB
Former-commit-id: ac29bc9fd1bdf3d7c0d937460a7d12d61e242f65
2013-03-01 21:28:45 +01:00
Lynix bb4c747e0b Buffer::CopyContent takes now an const buffer
Former-commit-id: c7a44c3198a24a60a26ab3cc04f75f4cea159979
2013-03-01 16:11:39 +01:00
Lynix 1b5215d4c2 Removed AxisAlignedBox (Replaced by BoundingBox)
Former-commit-id: 931dd6710caf49aeaede51efe209d714f080c44b
2013-02-21 18:28:32 +01:00
Lynix add363a290 Moved AxisAlignedBox to mathematic module
Former-commit-id: 2cb5b151941a431b5c12457f0decf7b39195052d
2013-02-19 12:32:11 +01:00
Lynix 8fff32e145 Changed comment
Former-commit-id: 5d7f268bd8f49402f98c426c561d38a50ce4fa34
2013-02-18 04:03:05 +01:00
Lynix 8b192a8cae Fixed AxisAlignedBox::ExtendTo warning
Former-commit-id: 696ce9e1625df33857425e0d758ee135d53c5064
2013-02-18 04:02:54 +01:00
Lynix 857d2dd9ed Replaced std::map with std::unordered_map
Not possible yet with NzString-key map


Former-commit-id: faa628a1c9c10e7bc009bf5a67e112ad5f873bd8
2013-02-17 14:08:12 +01:00
Lynix 60d41f3c4b Moved AxisAlignedBox::GetCorner to Cube
Former-commit-id: 59509594e6cda19089b93efd8dc77ab7bd20250c
2013-02-17 00:51:16 +01:00
Lynix e9615cc07b Fixed AABB not invalidated by Interpolate()
Former-commit-id: a688a7861bedbc3e49af92da8db78b12123276a2
2013-01-31 17:05:44 +01:00
Lynix c87c63c685 Optimized multi-threaded Skinning
Former-commit-id: f11c81767f5979ae834fd841be1cd75f79190940
2013-01-30 01:37:20 +01:00
Lynix afddcd0804 Fixed MD2/MD5 meshs not having normals/tangents
Former-commit-id: 9456620961fc7e75482b4fc29394934a3d695c5e
2013-01-29 02:02:35 +01:00
Lynix fc5b1ade9b Added missing const
Former-commit-id: 354757698554c187792e92f1d471c65b870c74d4
2013-01-29 02:01:54 +01:00
Lynix 3409461c39 SkeletalMesh::Skin now use threads
Former-commit-id: 4b26b3e1950548887f0a7d246864a968688ca0b4
2013-01-29 02:01:28 +01:00
Lynix 85c3224752 Added mesh generation of normals and tangents
Former-commit-id: 42b29acf5701b19156d6966b402baf11c87f3476
2013-01-27 18:39:32 +01:00
Lynix 4a28e42d4d Improved Node interface
Former-commit-id: cbc204748d8cf30771743f26270324dee6ada242
2013-01-12 01:38:58 +01:00
Lynix 38d2a08968 Fixed MD2 leaks
Former-commit-id: 8bf46de1995fef13889c122c38dc59655bf8311f
2013-01-11 14:39:45 +01:00
Lynix 842890e12e Added optional argument to Node::SetParent
Also fixed Set[Rotation|Scale|Translation] within global coordinate
system


Former-commit-id: 7808de7c3044f7b9261b22b7db521aad00d63c9b
2013-01-11 14:28:00 +01:00
Lynix 45bf5f1f43 Renamed VertexMapper::GetTotalVertexCount
To GetVertexCount


Former-commit-id: fa876c5499664bce31d438ef596373d908c6977c
2013-01-04 16:33:26 +01:00
Lynix 5eac4de406 Added TriangleIterator::Unmap()
Former-commit-id: 8ef858c5374c6701c087d0f4b1644bb6704e1131
2013-01-04 16:32:14 +01:00
Lynix d4030f666b Added TriangleIterator (experimental)
Former-commit-id: b94f4d4a26a92f4acecf4c53291db80756feb289
2013-01-04 16:27:22 +01:00
Lynix cd80905c0f Removed resolved Fixme comment
Former-commit-id: f65bcdeb368f3b3de6fef0f1d378945c108860aa
2013-01-04 02:38:53 +01:00
Lynix 24af375694 Fixed static MD2 mesh loader (Close #4)
Former-commit-id: a894211c7222f64b47efc3d31cb90fc86f944683
2013-01-04 02:34:16 +01:00
Lynix ef5f4617c8 Added IndexMapper::GetBuffer()
Former-commit-id: 5b203ea56f2201f5ff3c6bbdbc7a6573ed59f136
2013-01-03 23:28:41 +01:00
Lynix 23edd637dd Fixed IndexMapper const constructor
Former-commit-id: c8f46bc8b29ff6bcfdbc7fa9b0a01eef68d07a7e
2013-01-03 22:21:15 +01:00
Lynix ab93fb802b Added support to sequential index buffers
Former-commit-id: 68a566ab9bfe0490ba25aeb1c7486722b4a4ed01
2013-01-03 22:08:22 +01:00
Lynix f43137dc4e Made use of IndexMapper
Former-commit-id: 6496ac4a5a5393363212ee6d452b2ba488aa3354
2013-01-03 21:28:54 +01:00
Lynix 9c76c78c0c Added IndexMapper
Former-commit-id: 994b30f41161855827d920b6c128a5bbd480929b
2013-01-03 21:26:51 +01:00
Lynix 6fb221b479 Added VertexMapper::Unmap
Former-commit-id: b4210cfd864a527fb63ac0b1976acf2c3c198274
2013-01-03 21:25:29 +01:00
Lynix 16cec38f9c Made use of BufferMapper
Former-commit-id: 2b24f9d6cabf9fbf639b2c5e9319aaa304fe809a
2013-01-03 19:42:25 +01:00
Lynix 438d509130 Added VertexMapper
Former-commit-id: 26765f92782b61443544744ac145ccd02a8ed2b0
2013-01-03 19:39:52 +01:00
Lynix 81e95ecddf Improved KeyframeMesh AABB support
When you use KeyframeMesh::SetPosition(frame, vertex, pos), it will now
invalidate the frame AABB.
Finish() method will now generate automatically invalid AABBs before
interpolating


Former-commit-id: aa4695cee635da73e4a3b70ce22e83b1c3f443f9
2013-01-03 15:10:06 +01:00
Lynix c10a4eb94c Fixed keyframe normal/tangent interpolation
Former-commit-id: d4ee3e508945ff3ca85e435a24e520ccce1ebeb3
2013-01-03 12:31:01 +01:00
Lynix 1e5c34d53a Constant buffer mapping returns non-const pointer
Former-commit-id: 37438d554d8733350fcecbbfc4ba0dad46256f73
2013-01-03 03:50:18 +01:00
Lynix c998a5c457 Added KeyframeMesh::Get/Set vertex components
Former-commit-id: ff51b02dfd5f0675c33c01f39418312834c5d8a9
2013-01-02 21:51:03 +01:00
Lynix 520643140c Fixed last commit
Former-commit-id: 5034392dbdab232be71f8537638ed75c1c81eab8
2013-01-02 13:41:26 +01:00
Lynix 02f5385eaf Buffer::Unmap no longer return boolean
Made no sense: What do you want to do when your buffer doesn't unmap ?
Tt now throw a warning by itself in case of failure


Former-commit-id: f776af16787316bbe1d55686a1db2c2e0f79d210
2012-12-31 11:30:19 +01:00
Lynix c65f0e9f7e Removed Keyframe mesh lock system (useless)
Former-commit-id: b7e661274510836cb46eb98b6b9e7135d21a4820
2012-12-31 11:20:14 +01:00
Lynix c73d10ab29 Added non-constant access to vertex buffer
Former-commit-id: c0fea611caf6fb48bd0b2ed56897c173f7acad41
2012-12-31 11:14:40 +01:00
Lynix 6fefa3fdd2 Added read-only const access to buffers
Former-commit-id: 555f079e277869bc8f32732f24dfee704e17f324
2012-12-31 11:12:45 +01:00
Lynix 11fccc4c4b Fixed MD2 animation
Former-commit-id: 3ba7d63f9518c64677e575e13d8a42b459c5151f
2012-12-29 01:37:44 +01:00
Lynix 49f37e17ae AxisAlignedBox::Transform now apply translation
Added an optionnal argument to prevent translation from being applied
Updated demo


Former-commit-id: c56cb04733379eb6dda98b150931fb0e496ef889
2012-12-28 22:57:40 +01:00
Lynix 31a04abcaa Fixed potential bug with fullscreen window style
Former-commit-id: 005102ed9fb53aba36a074deaa3245da3d479d06
2012-12-28 21:33:50 +01:00
Lynix c4a5d32f28 Fixed method alphabetic order
Former-commit-id: b37a42cb64fa729888ad50957fc8c73b17ef9620
2012-12-28 19:26:00 +01:00
Lynix 1a4400facf Fixed module initialisation failure bug
If a module initialisation failed, then it resources may or may not be
freed.
This is fixed.


Former-commit-id: 029e0844e392685a31b3afc02c5bf772e015a372
2012-12-25 01:56:49 +01:00
Lynix d5dc07f3ef Fixed possible bug with MD5 bind-pose translation
Former-commit-id: 3ef6eba4944db249a8cbb3d6fb5dad2abe87fd6a
2012-12-09 20:23:24 +01:00
Lynix 70b1047f72 Used smart pointers to handle new-allocated array
Former-commit-id: b346e191c56655dd1f3d7fd46208d879bccfcf9d
2012-12-09 18:39:29 +01:00
Lynix 8c37c92c16 Fixed MD5 loader with animated parameter to false
Former-commit-id: f8d80e0f3f70f92be2898c29f00dd4abcaeb18a1
2012-12-09 18:37:57 +01:00
Lynix 18d3b67364 Fixed error message missing right parenthese
Former-commit-id: a054d8e328dbe3a43c2f8615a52eeb79a1fe2031
2012-12-09 18:36:37 +01:00
Lynix 273c0b1a36 Made skinning vertex access clearer
Former-commit-id: 682cb547b3492f0cb9e446721c69b7c5acb748b5
2012-12-09 18:35:54 +01:00
Lynix 5bce3e26a2 Fixed StaticMesh not correctly referencing buffer
Former-commit-id: a63de7e4ec46d8237761a58ffcc7e6cafc30d6b5
2012-12-09 18:35:18 +01:00
Lynix 37d6b71036 Fixed mesh animating modifying template skeleton
Former-commit-id: d70bd2ed7c8a38f879641a4b22be4876f6825edb
2012-12-09 01:45:34 +01:00
Lynix b652bada13 Fixed copying a skeleton not copying hierarchy
Former-commit-id: 54a556f1c6c336ba2397b60dfaa2b316df11d59b
2012-12-09 01:44:40 +01:00
Lynix 883c5fa0da Fixed node derived formula
Former-commit-id: da4c46e3086640147b3503928ef05e03f3c8e4cb
2012-12-09 01:44:18 +01:00
Lynix a15a54494f Fixed the second last commit
Former-commit-id: 46d94a0b3c9e85d9b4dacaa6c360102e8a4448a4
2012-12-08 22:59:40 +01:00
Lynix ad86c4d6fb Fixed SetTranslation not invalidating node
Former-commit-id: f4f8f39e5c3d919d016b15b276b38c20b5e84205
2012-12-08 22:57:25 +01:00
Lynix 7e533209dc Added initial states to node
Former-commit-id: 2127584e3432c16841817632522ea3bb82c7a786
2012-12-08 22:56:22 +01:00
Lynix dc9f202155 Fixed calling Uninitialize when not Initialized
Former-commit-id: 1d0bb01f881be76e163a5ac27c91d7fb6a873bb7
2012-12-08 21:51:43 +01:00
Lynix 2e40ad832e SubMeshs are now valid even when not animated
Former-commit-id: 5bd6289d30f4f6ffa1fcaf8d946aa9aba9cf7131
2012-12-03 16:24:47 +01:00
Lynix 817119933c Fixed SkeletalMesh AABB
Former-commit-id: 2b23660f80f3069581246af99c73fda45ee4d3d4
2012-12-03 15:06:10 +01:00
Lynix cc45746799 Improved keyframe mesh interface
Also improved animation performance by using a discard-and-write lock
when interpoling.


Former-commit-id: 277b5ad8f148ab73b99edf83cf8c6e5d0e6dfc82
2012-12-03 14:49:56 +01:00
Lynix b06acfcffd Index buffer no longer permit 8 bits index size
Modern graphics cards don't like 8 bits index size, so I introduced
"Large indices" option, it means 32 bits indices when used otherwise the
index size is 16 bits


Former-commit-id: 213902de6704ceef16c6ea311ba0c6c5d2f6e665
2012-12-02 17:01:02 +01:00
Lynix a536bf467b Removed unused includes
Former-commit-id: 9088500a08f62107603127013a9f8d8a7c86cf8a
2012-11-29 17:29:45 +01:00
Lynix cbc98ce3f0 Made NzThread interface mimic std::thread one
Hopefully fixed the threaded window bug


Former-commit-id: 6dc3ca2a8bee1da591a9b97d202d4b73b10be8eb
2012-11-29 16:51:01 +01:00
Lynix a2eb55e74a Fixed repo
Former-commit-id: 5992da5ec759f05dabf82009e660ec58eed96365
2012-11-29 10:15:10 +01:00
Lynix 0a2e19fa22 Merge remote-tracking branch 'origin/3D-Engine'
Former-commit-id: 1781615fc780accbe6c11d55fd896038d97ffec9
2012-11-29 10:11:30 +01:00
Lynix 2e26d52248 Meshes no longer retains an animation pointer
Former-commit-id: da4d93b815c46284a8977d7fb142201dc23fff61
2012-11-27 23:33:11 +01:00
Lynix c019d02b91 Fixed compilation error
Former-commit-id: 16a0469bb1adcd5d0c31995db6e9bcdef08c785e
2012-11-27 23:30:53 +01:00
Lynix 7ad24eff08 Mesh no longer contains the animation
Former-commit-id: 5dfcfe50f9c82310303120031a0def594fafd4f7
2012-11-27 22:02:45 +01:00
Lynix 53730b532d Optimized Node::GetTransformMatrix
Former-commit-id: b7eadb5a47ec6c2a9d24b19f45058e1ce5d0be49
2012-11-27 21:45:21 +01:00
Lynix a1a1a3da0c Replaced mesh material system
Former-commit-id: 1a3f2e0a80211a17838f29e5c0b0fc9def89d30a
2012-11-27 21:45:00 +01:00
Lynix 5d9bf5ed7b (SubMesh) Renamed GetSkinIndex to GetMaterialIndex
Former-commit-id: 7d28e3baa39342234495c9637e7e4886ffdc4b5a
2012-11-27 21:44:32 +01:00
Lynix 18baa6b8c1 Fixed typo
Former-commit-id: 4254892b447457b57cf9657f87ecf32a1ec899fe
2012-11-25 16:12:57 +01:00
Lynix 20be46e866 Made mesh animating/skinning constant
Since it doesn't change any of the mesh proprieties


Former-commit-id: 47eb21f234570d6ffe3af542029f2086744944b0
2012-11-23 21:16:14 +01:00
Lynix f4591bd331 Removed debug skinning clock
Former-commit-id: ee7dceb2863943952c9c0175fb3a32b136b9f84b
2012-11-22 12:11:26 +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
Jérôme Leclercq 7cc520be95 Random changes without any meaning
Former-commit-id: bcae279b389ea9c33afc27ac7f6eded6305fa134
2012-11-08 14:24:00 +01:00
Lynix 9199e60436 Added implicit conversion from AABB to String
Former-commit-id: c41510f4e0527a174d4acb5f8f26f60f4984ce15
2012-11-02 21:50:33 +01:00
Lynix 93a1738c55 Optimized VertexDeclaration::GetElement
Former-commit-id: a56498837ae2f6101e0641aab23b2d1d0f9130f3
2012-10-29 10:00:57 +01:00
Lynix 8132812c23 Interpolation factor is now only checked in debug
Former-commit-id: b5cf2b63740a0827403cac7843aca4b820b7687f
2012-10-29 09:59:55 +01:00