Commit Graph

195 Commits

Author SHA1 Message Date
Yao Wei Tjong 姚伟忠
a77e24d8ad Enable external project macro users to find and use PackageTool.
Adjust software packaging for Emscripten.
2015-02-13 21:31:59 +08:00
Lasse Öörni
bb2ebf7568 Bump copyright to 2015. 2015-01-31 21:03:53 +02:00
Yao Wei Tjong 姚伟忠
cf79f6ce1e Install CoreData and Data subdirs to 'share/Urho3D/Resources' instead.
Close #620.
2015-01-19 20:36:10 +08:00
Yao Wei Tjong 姚伟忠
f9158a045e Install binaries to the "bin" subdir relative to install prefix.
Fix the Android installing and packaging steps which previously failed to install all the sample libs.
Close #616.
2015-01-18 22:29:57 +08:00
Yao Wei Tjong 姚伟忠
05dd995b85 Refactor all the codes and scripts to use the renamed 'bin' subdir. 2015-01-18 21:40:54 +08:00
Yao Wei Tjong 姚伟忠
1b2dcac1d2 Add new URHO3D_MACOSX_BUNDLE build option to build bundled apps on OSX. 2015-01-17 18:34:22 +08:00
Yao Wei Tjong 姚伟忠
32212b1a12 Minor document update. 2015-01-10 21:23:12 +08:00
Yao Wei Tjong 姚伟忠
4c17b03173 Remove existing include path abstraction.
Remove engine's sub-CMakeLists.txt.
2015-01-04 22:32:42 +08:00
Yao Wei Tjong 姚伟忠
1cbbb6b805 Finalize SDK-like include dirs clean up. Fix build using MSVC. 2015-01-04 22:32:41 +08:00
Yao Wei Tjong 姚伟忠
b654478715 For Travis CI - also use DESTDIR=~ when installing on OSX host. 2015-01-04 22:32:41 +08:00
Yao Wei Tjong 姚伟忠
a4a4cde236 Refactor all CMake toolchains to reset CMAKE_INSTALL_PREFIX variable.
Add new build options for specifying tool-prefix and target-sysroot in cross-compiling build.
Add new IOS_SYSROOT variable to store the path to iOS sysroot and use it to set CMAKE_FIND_ROOT_PATH variable.
Now also generate pkg-config Urho3D.pc for iOS platform.
For Travis CI - simplify SDK installation logic. Use DESTDIR=~ to avoid sudo.
2015-01-04 22:32:41 +08:00
Yao Wei Tjong 姚伟忠
1b465fb704 Clean up FindUrho3D.cmake module.
Add new build options to override 64-bit Linux package setup for Debian and Redhad -based host systems.
For Travis CI - fix 64-bit RPM package generation to install library in /usr/lib64, also fix external project build test using Urho3D library from SDK.
2015-01-04 22:32:41 +08:00
Yao Wei Tjong 姚伟忠
3bc39c30c6 Also use DESTDIR when installing SDK on MinGW. 2015-01-04 22:32:41 +08:00
Yao Wei Tjong 姚伟忠
4feb135281 Clean up SDK include dirs. Refactor FindUrho3D CMake module.
For Travis CI - add new steps to install the Urho3D SDK and to reference Urho3D library from the installed SDK.
2015-01-04 22:32:41 +08:00
Yao Wei Tjong 姚伟忠
16e05862ab Preparation for SDK include dir cleaning up. 2015-01-04 22:32:40 +08:00
Yao Wei Tjong 姚伟忠
8da094c1d3 Fix to use CMake source tree when retrieving Urho3D version number. 2015-01-04 22:32:40 +08:00
Yao Wei Tjong 姚伟忠
4db162eb62 Lua/LuaJIT host tool building while cross-compiling in one go.
For Travis CI - reenable CI build with Lua/LuaJIT build option turned on.
2015-01-04 22:32:39 +08:00
Yao Wei Tjong 姚伟忠
d75c592bd2 Add new engine parameter to set the location of resource prefix path.
Remove temporary measure instead use the new URHO3D_PREFIX_PATH environment variable to set the resource prefix path for testing the executables.
2015-01-04 22:32:38 +08:00
Yao Wei Tjong 姚伟忠
20e21050e9 Rename everything 'RASPI' to 'RPI'. [ci rebase] 2015-01-04 22:32:38 +08:00
Yao Wei Tjong 姚伟忠
d8a3b8b4f4 Make repo root is also CMake source tree for the Urho3D project.
Build tree location is now fully user defined. The build tree location could also be the same as source tree, although it is not recommended.
2015-01-04 22:32:38 +08:00
Wei Tjong Yao
02512cecf9 In order to move the out-of-source 'build' directory back to Urho3D project root directory, all the source codes sub-directories are now moved down one level to a new directory under project root called 'Source'. 2013-08-09 10:29:22 +00:00
Wei Tjong Yao
9dc562641a Fixed unnecessary invocation of ObjectLocator custom script and creation of CMakeScriptOutput directory when not building Urho3D library. Renamed the custom script output name as its previous name clashes with VS. Attempted a fix on ObjectLocator custom script for MinGW. 2013-08-07 03:37:02 +00:00
Wei Tjong Yao
a6c1e77c8d Moved the Urho3D library code to Engine directory. 2013-08-06 16:31:18 +00:00
Wei Tjong Yao
1cbdea8159 Added custom script for MSVC build. 2013-08-06 15:33:21 +00:00
Lasse Öörni
560ffd03c2 Moved the Urho3D application code to Tools directory.
Updated documentation.
2013-08-06 15:09:47 +00:00
Wei Tjong Yao
e952719302 In preparation for supporting shared library for Windows platform, selectively marked Engine class as public API. Setup the visibility compiler flags for GCC and Clang to hide non-marked API from shared library. 2013-08-05 15:40:35 +00:00
Wei Tjong Yao
256eb5ac78 Refactored CMake build script to separate reusable commands and macros into module for easy inclusion in external project. Added option to build Urho3D static/shared library (currently only works in Linux GCC). Added new FindUrho3D.cmake module for setting up Urho3D as external library in other user-defined project. 2013-07-31 02:10:08 +00:00
Wei Tjong Yao
648c363ba1 Fixed Raspberry Pi build for Raspbian. 2013-07-26 07:01:42 +00:00
Wei Tjong Yao
1addaa979d Changed the build script to make Raspberry Pi build has the same behaviour between native build and cross-compile build. 2013-07-26 00:03:33 +00:00
Wei Tjong Yao
cc99a07a53 Added Raspberry Pi port, currently only supported in GCC build either natively or cross compiling (if the CC tool is detected). Moved the gcc out-of-source build directory one more level up as it is better supported by cmake/eclipse generator this way. Enhanced shell scripts so they can be invoked in any directory. A few bug bug fixes on SDL library code. 2013-07-25 15:56:53 +00:00
Lasse Öörni
eea9b8da0d Added a larger version of the Urho3D logo.
Make GPUObject::GetGraphics() not inline so that including GPUObject.h does not also require including Graphics.h.
Added possibility to enable OpenGL mode through CMake command line.
2013-07-25 12:59:38 +00:00
Lasse Öörni
0a70acdad0 Added Samples directory & first sample (HelloWorld) contributed by Paul Noome. 2013-07-24 23:41:57 +00:00
Lasse Öörni
dac3f4e0a8 Fixed Android library stripping on some Windows configurations.
Perform Android build as out-of-source on Windows to match the Unix behavior and allow the same commands to be used.
Finalized the Android build documentation.
Removed the old Android native code build path using ndk-build.
Fixed post processing intermediate rendertargets not matching the rendertarget format.
2013-07-13 18:47:36 +00:00
Wei Tjong Yao
f570d88f1b Fixed GCC build under Mac platform. 2013-07-11 02:16:59 +00:00
Wei Tjong Yao
92d4e9831b Configured GCC to use out-of-source build. Set RelWithDebInfo as default build type for single-configuration generator (can be overridden via '-DCMAKE_BUILD_TYPE=xxxx' command line argument). Enhanced cmake_gcc.sh and cmake_eclipse.sh to generate Android project when ANDROD_NDK environment variable is set. Hence, deprecated cmake_android.sh. Updated document to reflect out-of-source gcc build and added a new paragraph on using Eclipse ADT plugin for Android building/deployment. 2013-07-11 01:52:23 +00:00
Wei Tjong Yao
0a712e2e6a Reversed the parameter handling logic in cmake_xxxx.bat and to make it consistent with their shell script counterpart. Updated the documentation accordingly. Reverted back main CMakeLists.txt. 2013-07-10 15:20:44 +00:00
Aster Jian
8d3d69e134 Add Object::GetTypeName support. 2013-07-10 11:02:16 +00:00
Lasse Öörni
e87ff28e40 Use no-invalid-offsetof flag on Android.
Restored logic of using debug log level in debug mode by default.
2013-07-09 14:54:10 +00:00
Wei Tjong Yao
ace1fef9e6 Fixed android-gcc build. Moved enabling of ASM_MASM to the library targets that need it (for Win64 build). 2013-07-09 05:40:14 +00:00
Wei Tjong Yao
56e60a59d8 Fixed Win64 build. Enhanced cmake_vs20xx.bat to accept extra command line arguments, such as ENABLE_64BIT, ENABLE_LUA, or ENABLE_EXTRAS. 2013-07-08 00:13:55 +00:00
Lasse Öörni
1704bd16a9 Initial support for CMake-based Android build. 2013-07-07 19:41:45 +00:00
Wei Tjong Yao
2946fb3198 Removed generated artifacts from SVN. Automated the generation of *LuaAPI.cpp as part of the build process. 2013-07-04 04:29:22 +00:00
Lasse Öörni
ea67568632 Added Lua bindings contributed by Aster Jian.
Fixed missing includes in some header files.
2013-06-29 16:42:38 +00:00
Lasse Öörni
090eb3aafa Find DirectX SDK to avoid needing it as a global Visual Studio directory. 2013-06-13 15:35:49 +00:00
Lasse Öörni
782c5971ee Use unique name for RESOURCE_CHECK target. 2013-06-05 20:03:00 +00:00
Lasse Öörni
648564c8fb Added setup_main_executable() CMake macro which sets up resource copying for an executable. 2013-06-05 18:31:17 +00:00
Lasse Öörni
74e13e03b3 Wiki update. 2013-05-01 15:17:47 +00:00
Lasse Öörni
8b28c12ae6 Added instancing to the OpenGL renderer, requires the ARB_instanced_arrays extension. 2013-05-01 15:14:31 +00:00
Lasse Öörni
5f6714920f Fixed 64bit build on Linux. 2013-04-30 18:39:55 +00:00
Lasse Öörni
ef42c4faec Added explicit -m64 flag for 64bit compile on GCC. Added String constructors that take long or unsigned long as parameter. 2013-04-29 17:14:35 +00:00
Lasse Öörni
d24ec7bc0d Fixed redundant SSE flag in 64bit mode. 2013-04-29 08:38:56 +00:00
Lasse Öörni
9e3282aeea Initial fixes for compiling as 64bit (MSVC.) 2013-04-28 22:19:20 +00:00
Lasse Öörni
08075f0915 Reversed if's in Variant code to favor the correct type.
Added non-const Variant functions to get modifiable collection objects (buffer, variant vector, variant map.)
Added Recast & Detour libraries. Added skeleton of a Navigation library & component, no functionality yet.
2013-04-04 07:49:18 +00:00
Lasse Öörni
1d60bc59fa Added check to ListView to see if has been destroyed as a response to the selection event.
Added CharacterDemo C++ example to Extras.
Improved the QuickStart in C++ to be cross-platform.
2013-03-29 23:40:51 +00:00
Lasse Öörni
e037de8c74 Added Enable/Disable flag for RigidBody.
Reduced GCC optimization level to -O2 for stability.
2013-03-26 18:54:15 +00:00
Lasse Öörni
b865108ecd Applied patch for poor CPU performance on MinGW builds. 2013-03-25 12:35:54 +00:00
Lasse Öörni
ff564d3360 Switched to GLEW library for OpenGL extensions. 2013-03-20 21:52:53 +00:00
Lasse Öörni
893133e1cd Fixed root CMakeLists.txt 2013-03-18 15:01:38 +00:00
Lasse Öörni
74c01e7da5 Added compiled AngelScript bytecode support.
Removed unnecessary nullcheck from View.
TODO: merge ScriptCompiler & ScriptAPIDumper.
2013-03-18 08:09:27 +00:00
Lasse Öörni
20619d01b1 Converted Log into a monostate to allow logging without a Context pointer.
Made Time::GetSystemTime() and Time::GetTimeStamp() static as they don't use any instance data.
2013-03-09 22:23:23 +00:00
Lasse Öörni
6e90c6ea13 Fixed bug in win32 ScanDir implementation, which did not scan subdirs if filter was not *.*.
Added Extras directory for contributions which are not strictly Urho3D core.
Added OgreBatchConverter utility from Carlo Carollo, modified to use Urho3D classes to be crossplatform compatible.
2013-03-09 20:42:45 +00:00
Lasse Öörni
22ead3645c Started work on doxygen-to-wiki conversion for Urho3D documentation. 2013-03-08 14:23:46 +00:00
Lasse Öörni
da243eb31b Applied UI & editor related patch from weitjong.
Changelog:
- Urho3D engine returns proper exit code, supports window resizing and quite mode, supports setting of any log level regardless of built type.
- Change the default graphic resolution in windowed mode from 800x600 to 1024x768 which I believe should be more common now.
- Log subsystem distinguishes between standard output and standard error streams. Error log entries are sent to stderr, so even in quite mode which stops sending to stdout, the error entries would still be shown on console. This is handy to weed out mundane entries from error entries during debugging/development.
- For UI elements, only save attribute values that are different than default attribute values during save serialization.
- Misc. UI enhancement: slider supports paging on 'empty' area along the slider; scrollbar responds to the slider hover and click on 'paging' area; menu supports passing the popup state to its sibling when mouse hovering pass the sibling; (bug fix) prevent button to generate release event erroneously (click outside, drag, hover inside, then release), plus now it should behave correctly on other situation (e.g. click inside, drag outside, then drag inside again); file-selector, list view, and line edit accept keypad 'Enter' as well; cursor supports defining shape for OS mouse too when it is set to visible, new busy cursor shape; (bug fix) fix the text default attribute values for selection and hover color to match the color assigned by constructor; line edit supports double-click to select all; scrollview hides the horizontal and vertical scrollbars automatically if not needed (still does not hide correctly on a few cases though :-).
- Refactoring the scripts in Editor application to take advantage of the Urho3D UI potential and other small improvements, like: fade out the UI when moving or rotating the scene; relayout the UI element when main window resize in windowed mode; demo the usage of busy cursor when loading scene from file; modified node/component attribute values are shown with different text label color; store the configuration file in hidden folder under user home folder as per normal practice for applications runs on MacOSX and Linux platforms; use the OS mouse so the it can move freely between Editor in windowed mode and other graphical apps.
The UI attributes in *.xml files are adjusted accordingly. The most important change is, the cursor shape now uses Image resourceref instead of Texture2D.
- Refactoring to replace code constructing the empty instance with reference to static const 'empty' instance whenever it is available; refactoring to remove redefinition of VariantMap and VariantVector in Serializer.h.
- Bug fixes: prevent double posting of error messages in the log on MacOSX and Linux platforms when Urho3D exits on error; fix DumpAPI() from erroneously substituting 'doubleClickInterval' to 'floatClickInterval'.
- Added a new tool to make dumping of the Script API even easier. I have managed to initialize a minimalist engine's subsystems to start the DumpAPI() function.
2013-03-05 08:01:29 +00:00
Lasse Öörni
92eb073cb7 Applied cmake patch from weitjong.
Renamed finalize_exe and finalize_lib cmake macros to setup_executable & setup_library, as they already do much more than finalization.
2013-02-07 09:46:23 +00:00
Lasse Öörni
cdc9226b34 Fixed GCC build on OS X. 2013-02-03 21:57:42 +00:00
Lasse Öörni
3dc3c836a6 Applied patch from weitjong, which improves OSX/iOS build, and removes dead code. 2013-02-03 21:31:24 +00:00
Lasse Öörni
7d8558a51f Applied massive patch from weitjong.
Changes:

I. Build environment
1. Added new cmake definition to disable/enable Log subsystem in main's CMakeLists.txt.
2. Added setting in main's CMakeLists.txt to pass the "-D_DEBUG" compiler flags for Debug configuration build on non-MSVC compiler. At least it is needed on XCode to get verbose debug log. I assume MSVC does not have this problem.
3. Added '../Engine. to include directories in Input's CMakeLists.txt to allow Input to reference Engine class for handling of SDL_QUIT event (see V.5 and VII.1).
4. Changed cmake_gcc.sh to sed Doxyfile to exclude Direct3D9 and include OpenGL variants of the classes, assuming gcc is only for Mac OS X and Linux.
5. Changed cmake_ios.sh to sed Doxyfile to exclude Direct3D9 and include OpenGL variants of the classes.
6. Added new cmake_macosx.sh shell script to prepare cmake for Xcode in Mac OS X environment.
7. Updated Docs/Reference.dox to correct the URL to AMD's Compressonator.
8. Updated Docs/ScriptAPI.dox to reflect API changes in UI.
9. Added *.sh scripts in the Bin folder to invoke the respective demos.

II. Audio
1. Minor refactoring on Audio class: removed redundant header include, removed redundant call.
2. Corrected minor documentation typo error in Sound.h.

III. Container
1. HashMap minor optimisation: operator [] implementation would not traverse the container twice before node insertion, refactored Clear() and Sort() implementation, changed to static_cast instead of reinterpret_cast, etc.
2. HashSet minor optimisation: refactored Clear() and Sort() implementation, changed to static_cast instead of reinterpret_cast, etc.
3. List minor optimisation: refactored Clear() implementation and changed to static_cast instead of reinterpret_cast.
4. Corrected documentation error for operator > in Pair class.
5. Added new Contains() methods and renamed Print()/PrintArgs() to AppendWithFormat()/AppendWithFormatArgs (while they are still new :-) in String class. Added ToString() global function in StringUtils class to take advantage of new append methods (useful in constructing a formatted string for logging in one liner; becomes no-ops when logging not enabled).
6. Added new Remove() method in Vector and PODVector classes.

IV. Core
1. Enhanced ProcessUtils class to add native approach to detect number of Physical and Logical CPUs for iOS platform.
   BUG FIX: Previous ParseArguments(int, char**) implementation assumed there were no space in the pathname which causes parsing error when it does. Fixed by enclosed the argument in quotes before appending into command line. With this fix, Ninja War demo is runable in iPhoneSimulator.
2. In StringUtils added new convenient global function to construct a formatted string, see III.6.
3. In Variant added MAX_VAR_TYPES enum for guarding a while loop.

V. Engine
1. Added pragma to suppress LLVM/Clang erroneous warnings on unused functions in APITemplates.h.
2. Minor refactoring on Console class: removed redundant call, renamed current_Row to currentRow_.
3. In CoreAPI refactored code to replace map's Find() method call with the newly added Contains() method, added call to reserve container capacity.
4. Refactored DebugHUD class to use the String's new append method instead of a series of strings concatenation.
5. Enhanced Engine class to make Logging an optional feature that can be turned on/off like Profiler subsystem (see I.1), only unpause the audio when it was pause by the Engine previously, no need to check for uninitialized graphics due to window was closed (see VII.1) as engine's exiting_ flag should be set when SDL quits (even by quitting the process externally).
6. GraphicsAPI minor optimisation: Add call to reserve vector to the required known size.
7. Enhanced IOAPI to add preprocessor directive to no-ops the logging functions when Logging not enabled, see I.1.
8. Enhanced UIAPI to reflect changes in UI: mainly, exposed nonFocusedMouseWheel property (see XV.12).

VI. Graphics
1. AnimatedModel optimisation: refactored ProcessRayQuery() implementation, added call to reserve container capacity, removed copy-pasta comment.
   BUG FIX: Infinite while loop in SetMorphsAttr() as the index was never incremented.
2. Changed Animation constructor to also initialize length_.
3. Refactored AnimationController class: only mark for network update when necessary, corrected minor documentation error, added call to reserve container capacity, prevent out-of-bound index access in SetAnimationAttr() implementation, use the StringHash instead of plain name to find the animation state.
4. Refactored AnimationState to avoid redundant call.
5. Refactored BillboardSet class: removed redundant class forward, changed to use the revised Drawable's constructor (see VI.9), added call to reserve container capacity.
6. Refactored Camera class to remove redundant construct. 
7. Refactored DebugRenderer to reuse code. 
8. Refactored DecalSet class: changed to use the revised Drawable's constructor (see VI.9), added call to reserve container capacity, added new flag to track the event subscription.
9. Refactored Drawable to change its constructor to take additional drawableFlags parameter.
10. Enhanced Light class: changed to use the revised Drawable's constructor (see VI.9), refactored ProcessRayQuery() implementation, added implementation to debug draw the directional light.
    BUG FIX: On mobile devices, the CSM only has two splits. Use preprocessor directive to define the attribute as VAR_VECTOR2 instead of VAR_VECTOR4, accordingly.
    BUG FIX: Previous implementation used local ray against world bounding box for RAY_OBB. Fixed by first transformed the world bounding box to local coordinate.
11. Refactored Material class to set or unset the specular_ flag without traversing the shader parameters each time.
12. Refactored Model class: added call to reserve container capacity, removed redundant call to set the number of vertex buffer to 1 (which is Geometry's default).
13. Modified OcclusionBuffer Clear() method to use post decrement.
14. Refactored Octant and Octree classes: changed to use the new PODVector Remove() method, added index_ instance variable to facilitate child octant deletion, simplified the conditional check in the Release() but still achieving the same result.
15. Refactored OctreeQuery class to reorder the condition and to use post increment.
16. Refactored ParticleEmitter class: removed redundant class forward, changed to use the other ColorFade constructor that inits both color and time, added call to reserve container capacity.
17. Refactored Renderer class: removed unused static constants, amended the documentation text for HandleGraphicsFeatures(), delayed event subscription until object is initialized, moved logic to validate the shadow cascades from getter to setter, changed to use String's Contains() method instead of Find(), and a few more code changes (that make no difference :-).
18. Refactored ShaderParser class to change the method signature of GetCombination() method, removed redundant include.
19. Refactored Skeleton class to add call to reserver container capacity.
20. Refactored StaticModel class: changed to use the revised Drawable's constructor (see VI.9), changed the ProcessRayQuery() implementation.
21. Enhanced Tangent class to use pointer arithmetic instead of array indexing.
22. Refactored Terrain class: reordered instance variable initialization in constructor to keep compiler happy, added call to reserve the container capacity.
23. Refactored TerrainPatch class: changed to use the revised Drawable's constructor (see VI.9), changed ProcessRayQuery() implementation.
24. Refactored View class: removed unused method declarations (did not have implementation), changed to reuse existing Vector3 constants, changed octree query base class to FrustumOctreeQuery instead (no additional penalty as the methods are already virtualized anyway), moved constant to outside the loop in CheckVisibilityWork() implementation, reordered logical statement to take advantage of short circuit evaluation, and more.
25. Refactored Viewport class to use the more common way to insert into container.
26. Refactored Zone class: changed to use the revised Drawable's constructor (see VI.9), reordered logical statement to take advantage of short circuit evaluation.
27. Enhanced OGLGraphics class: added code to prevent unnecessary call to get OGL extensions, changed to use new String's Contains() method, added flag to speed up the Release() method, removed redundant code.
28. Changed OGLGraphicsImpl to remove unused include.
29. Changed OGLIndexBuffer to remove unnecessary override. Probably it was copy pasta from Direct3D9 version.
30. Refactored OGLShader class to use the modified ShaderParser's GetCombination() method, see VI.18.
31. Refactored OGLShaderProgram class to use reuse the index for the second string Find() call.
32. Refactored OGLShaderVariation class to the string Insert() method instead to insert all the defines.
33. Refactored OGLTexture class to use the enum instead of hardcoded value.
34. Refactored OGLTexture2D class to simplify the boolean assignment.
35. Refactored OGLTextureCube class to simplify the boolean assignment.
36. Refactored OGLVertexBuffer class to remove unnecessary override and to simplify the for loop condition check in GetElementOffset() method.
37. Refactored CustomGeometry class: changed to use the revised Drawable's constructor (see VI.9), changed ProcessRayQuery() implementation.

VII. Input
1. Enhanced Input class: added call to Engine::Exit() to properly setting the exiting flag instead of just closing the graphics (see V.5), refactored constructor to initialize the mouse related instance variables, delayed event subscription until object is initialized, and other minor refactoring.

VIII. IO
1. Enhanced FileSystem class: added Mac OS X implementation for SystemOpen() method, changed to use new String's Contains() method instead of Find().
   BUG FIX: On non-Win32 platform, files (including dirs) having name starts with '.' were being returned in the result although SCAN_HIDDEN flag is not set. The fix now excludes them.
2. Enhanced Log class: added preprocessor directive to no-ops the logging macros when Logging not enabled (see I.1), removed "XCODE_DEBUG_CONFIGURATION" as it is not effective (at least on my Xcode). Also replaced "XCODE_DEBUG_CONFIGURATION" with "_DEBUG" in SDL_uikitappdelegate.m.
3. Minor changed in Serializer.cpp to suppress compiler warning.

IX. Math
1. Refactored BoundingBox class to reuse code.
2. Enhanced MathDefs.h: better PI, added new constant M_DEGTORAD_2 which is M_DEGTORAD / 2.f (same as M_PI_2, M_PI_4 convention used in math.h).
3. Refactored Frustum class to use the new M_DEGTORAD_2 constant.
4. Refactored Plane.h to reuse code.
   BUG FIX: Copy constructor did not initialize the absNormal_ properly.
5. Enhanced Quaternion class: added multiply-assign operator with a scalar, added Conjugate() method, refactored to reuse code as much as possible, returned conjugate as inverse for unit quaternion, refactored code to use the new M_DEGTORAD_2 constant.
6. Refactored Rect class to reuse code.
7. Refactored Sphere to use post increment.

X. Network
1. Refactored Connection class: changed to hide the detail of the message processing from the caller, added preprocessor directive to exclude statistics when logging is disabled, changed the code to reflect the change done in Node::CreateComponent() method signature (see XIII.2).
2. Refactored Controls class: removed redundant class forward, changed the way default constructor initialize the instance variables.
3. Refactored Network class: removed redundant class forward, changed to reflect changes done in X.1 to process messages, changed the GetConnection() implementation to avoid traversing of the clientConnections_ unnecessarily.

XI. Physics
1. Enhanced CollisionShape class to add preprocessor directive to no-ops the logging calls when Logging not enabled, see I.1. Refactored the HeightfieldData() method to eliminate if statement in the loop.
2. Minor changed in Constraint.cpp to suppress compiler warning.
3. Refactored PhysicsWorld class: removed redundant call in destructor, changed to use the new PODVector Remove() method.
4. Refactored RigidBody class to use the new PODVector Remove() method.

XII. Resource
1. Minor changed in Image.cpp to suppress compiler warning.
2. Enhanced ResourceCache class: changed code to subscribe to event only when auto reload is enabled, refactored to use HashMap's Find() instead of traversing through container manually, changed to use new String's Contains() method.
3. Minor changed in XMLElement class to define an EMPTY element constant.

XIII. Scene
1. Refactored Component class: removed redundant include, reordered logical evaluation.
2. Refactored Node class: changed the CreateComponent() to accept optional ID parameter (combined previously two methods into one), refactored to reuse code as much as possible, added new method to reset scene called by Scene class, moved protected section to correct place adhering to code convention, added new private convenient method to remove component. 
3. Refactored Scene class: changed destructor and in NodeAdded() method to use the new Node::ResetScene() method (see XIII.2), changed the GetVarNamesAttr() implementation to avoid if in the loop, instead of using XMLElement and String default constructor, changed to reference new EMPTY XMLElement constant (see XII.3) and String's Clear() method, respectively.
4. Enhanced SceneResolver class to add preprocessor directive to no-ops the logging calls when Logging not enabled, see I.1.
   BUG FIX: The missing 'else' statement in Resolve() method might cause component ID not resolved correctly. Fixed by adding the else statement.
5. Enhanced Serializable class: refactored code to suppress compiler warning, added new feature to read/write new optional "enum" XML element.

XIV. Script
1. Enhanced Addons class: removed redundant include, changed code to suppress compiler warning, exposed new String's Contains() methods to script enginei (see III.6).
   BUG FIX: The Find() and FindLast() were erroneously exposed as returning integer value. Changed it to returning unsigned instead.
2. Enhanced Script class: added preprocessor directive to no-ops the logging calls when Logging not enabled (see I.1), changed to use new String's Contains() method instead of Find(), removed redundant call in destructor.
   BUG FIX: The logMode_ instance variable was not initialized properly in the constructor (although documentation says it should be defaulted to immediate mode). Initialized it according to documentation.
3. Refactored ScriptFile class to remove redundant call.
   BUG FIX: Previous implementation in Load() assumed script log mode. The fix saves the old mode and use it to revert back the mode.
4. Enhanced ScriptInstance class: refactored ClearDelayedExecute() method to avoid unnecessary vector traversal, simplified code that tracks the execution of METHOD_DELAYEDSTART, refactored to code reuse.

XV. UI
1. Refactored UIQuad and UIBatch: Added new constructor that initialize instance variables, moved GetInterpolatedColor() method between the two, modified the UIBatch methods to take in const UIElement reference, changed the implementation to code reuse as much as possible.
2. Refactored BorderImage class to use the new UIBatch constructor, see XV.1.
3. Very minor changed in Button.cpp to simplify the logical statement.
4. Refactored DropDownList class: Changed to call Menu::GetBatches() instead of Button::GetBatches(), changed for code reuse.
5. Refactored FileSelector class: added call to reserve container capacity, changed for code reuse.
6. Refacotred Font class: added call to reserve container capacity, removed redundant call. 
   BUG FIX: Corrected a typo in GetKerning() implementation causing the kerning information not being applied correctly between adjacent characters.
7. Refactored LineEdit class: Changed to call BorderImage::ApplyAttributes() instead of UIElement::Attributes(), removed redundant construct, changed to reuse code as much as possible, initialized variable in the setter method instead of during update.
8. Enhanced ListView class: added optional index parameter for RemoveItem() method, subscribed to the defocused event only when it is needed, changed to reuse code as much as possible (page up/down and home/end now support additive multi-select as the positive side effect), removed redundant construct.
9. Very minor change in Menu.cpp to use Variant::EMPTY instead of constructing an empty Variant instance.
10. Refactored ScrollView class to reuse code.
11. Refactored Text class to use the new UIBatch constructor, see XV.1.
12. Enhanced UI class: Added support to enable non-focused mouse wheel behaviour similar to Mac OS X and Linux, delayed post-update and render-update event subscription until object is initialized, removed redundant construct.
13. Enhanced UIElement class: added optional index parameter for RemoveChild() method, refactor the code to use the right constness, renamed method from GetUintColor() to GetDerivedColor(), added new private Detach() method, added mutable keyword as necessary to support const getter, refactored destructor method, added call to reserve container capacity, and more.
14. Minor change in Window.cpp to suppress compiler warning.

XVI. Third Party
1. FreeType: Included zutil.c as source in the CMakeLists.txt and fixed the problem when compiling with _DEBUG set.
2. kNet: Removed std::cout statement in the UDPMessageConnection.cpp.
3. SDL: Changed XCODE_DEBUG_CONFIGURATION to _DEBUG in SDL_uikitappdelegate.m, see VIII.2.
   BUG FIX: The touch focus was always zero causing the touch event from touchpad in Mac OS X platform was not handled correctly by Input class because the GetInputInstance() method returns 0 when windowID is 0. Assign the touch's focus with current focus window ID. NOT SURE THIS IS THE CORRECT FIX THOUGH.

XVII. Demos
1. BUG FIX: TestScene.as and TestSceneOld.as assert in the btAlignedObjectArray.h. It was caused by the script trying to remove the RigidBody and/or CollisionShape while in the middle of physics collision event handling. The Bullet's assert could be observed when build using _DEBUG. Fixed by postponinig the removal to post step.
2. Enhanced the NinjaSnowWar to support no-background-music (nobgm) option.
   BUG FIX: BGM was purposely not played on multiplayer mode assuming testing is done on a same test machine, however, this has caused the BGM not to be played on the genuinue multiplayer mode using different machines. Re-enable BGM on multiplayer mode. Instead, added comments in the demo shell/batch script on how to avoid multiple BGM played on a same test machine.
2012-12-25 20:56:05 +00:00
Lasse Öörni
411ab13883 Applied jpeg save and system time patches from Alex Fuller. 2012-12-20 23:23:07 +00:00
Lasse Öörni
48da9e9093 Applied VS2012 / ShaderCompiler patch from Colin Barrett. 2012-11-01 19:46:37 +00:00
Lasse Öörni
9db9049e72 Calculate environment map reflection per pixel. Perturb reflection with normal map.
Default to RelWithDebInfo build in CMakeLists.txt.
2012-10-27 10:23:59 +00:00
Lasse Öörni
44ffd7e0b8 Disable SSE also from Bullet when necessary. 2012-09-02 17:38:26 +00:00
Lasse Öörni
575ac5b625 Removed references to Windows 2000 in the documentation. Windows XP is the minimum supported Windows OS version. 2012-09-02 13:33:16 +00:00
Lasse Öörni
24dc5ed707 Fixed MSVC executable copy step when path has spaces.
Fixed MinGW warning of unrecognized option when compiling C files.
2012-08-21 16:17:23 +00:00
Lasse Öörni
7c22605019 Use static gcc libs with MinGW. 2012-08-20 13:27:48 +00:00
Lasse Öörni
71cf37c257 Applied CMakeLists.txt patches from skaiware. 2012-08-18 14:58:12 +00:00
Lasse Öörni
8c581bf8bb Cleaned up Doxygen comments. 2012-07-28 16:51:48 +00:00
Lasse Öörni
7b1adbe0f7 Root CMakeLists.txt cleanup. 2012-07-28 16:43:37 +00:00
Lasse Öörni
3f2e63b952 Removed the model build step from CMakeLists.txt. Instead added binary models directly to the repository. 2012-07-03 16:22:36 +00:00
Lasse Öörni
dee2e099de Added ETC1 & PVRTC decompression from the Oolong Engine. Used when not supported in hardware. 2012-07-03 11:34:07 +00:00
Lasse Öörni
5507b006be Shader load/compile refactoring. Removed shader source code from the SourceAssets directory and moved to Bin/CoreData/Shaders.
Changed ShaderCompiler command line options.
Changed FileSystem::SystemRun() to use CreateProcess() and to hide the window of the spawned program.
Removed GLShaderProcessor.
2012-06-24 00:11:43 +00:00
Lasse Öörni
e1a1c974e5 Initial iOS support.
Do not use glPolygonOffset() constant bias due to its inconsistency. Instead offset the projection matrix as necessary.
Do not use multiple glUniform calls to set an array of transposed matrices, as it is not guaranteed to work. Instead transpose all matrices first, then set them in one call.
2012-06-09 22:05:14 +00:00
Lasse Öörni
7593ab4da0 Removed unnecessary MSVC setting. 2012-06-06 19:55:34 +00:00
Lasse Öörni
53e2198aa7 Use SDL also in Direct3D9 mode for consistent input handling.
Fixed infinite loop in Graphics::GetResolutions().
2012-06-03 17:59:54 +00:00
Lasse Öörni
101b2ee338 Fixed crash if model had zero submeshes.
Fixed root CMakeLists.
2012-05-25 15:59:41 +00:00
Lasse Öörni
92facb3c3b Added Android asset support and basic build instructions. 2012-05-24 22:16:21 +00:00
Lasse Öörni
627d2c94d7 Switched from GLFW & PortAudio back to (modified) SDL 2.0.
Do not draw debug geometry for bones that do not contribute to skinning.
Activate input immediately after title bar drag (Windows) or when the cursor is moved into the client area after title bar drag (Mac & Linux).
2012-05-13 22:28:06 +00:00
Lasse Öörni
a84ed27df9 Updated to AngelScript 2.23.1.
Removed link time code generation from the release build as it greatly increases compile time, but does not seem to provide observable performance benefit.
2012-04-29 13:10:22 +00:00
Lasse Öörni
2ff2fc81fa Moved Squish back to its own directory. 2012-04-26 06:51:08 +00:00
Lasse Öörni
08f7d03fcc Tidied up root CMakeLists.txt. 2012-04-25 23:03:58 +00:00
Lasse Öörni
ec593273b8 Moved a slimmed down version of Squish (only DXT decompression) directly to the Resource library. 2012-04-25 22:51:24 +00:00
Lasse Öörni
2f4165bf0f Added Squish library for DXT decompression. 2012-04-25 21:07:35 +00:00
Lasse Öörni
0ea1679976 Optionally use SSE instruction set. 2012-04-25 18:38:24 +00:00
Lasse Öörni
8edf0240a1 Migration to Bullet physics underway. Most of physics functionality & examples broken for now. 2012-04-09 18:10:17 +00:00
Lasse Öörni
c64e0cd165 Default to RelWithDebInfo build on GCC. Removed Urho3D executable name debug postfix due to CMake limitations. Copy the executables to Bin directory similarly on both MSVC & GCC. 2012-02-25 12:30:42 +00:00
Lasse Öörni
8b6a208ab5 Reverted root CMakeLists.txt. 2012-02-24 18:53:32 +00:00
Lasse Öörni
fa017fd53d Fixed Unix compile errors. 2012-02-24 18:14:52 +00:00
Lasse Öörni
fd1c3385ca Do not define UNICODE, as GLFW assumes multi-char mode. Rather call the wide char Windows functions explicitly. 2012-02-24 11:38:01 +00:00
Lasse Öörni
bedf357c90 Added WString class.
Create as an Unicode application on Windows.
2012-02-24 00:37:12 +00:00
Lasse Öörni
17b8f300b6 Added a CMake variable for enabling the file watcher, as it requires Windows XP or newer like minidumps. 2012-02-22 22:17:25 +00:00
Lasse Öörni
8b44eee163 Reverted main CMakeLists.txt. 2012-01-01 01:08:30 +00:00