Commit Graph

68 Commits (dbd1f601da7e7468662aca9c173edf15de667da0)

Author SHA1 Message Date
AbigailBuccaneer 282a793a13 Improve object vis with tighter bounding spheres
This commit improves rendering performance by doing a better job of
checking whether an object is visible via its bounding sphere or not.

The engine maintains a bounding box for each EngineBaseObject that's
exactly large enough to fit every vertex. From this, it computes a
bounding sphere, and only draws objects if the sphere is within the view
frustum. Previously, the bounding sphere was always centered on the
EngineBaseObject's origin, even for models where the bounding box center
is significantly offset from the origin. Now, the bounding sphere is
always the tightest sphere which fits the bounding box.
2018-04-29 19:35:02 +01:00
krzys-h 1c2bdc9cab Update license headers 2018-04-20 02:08:50 +02:00
krzys-h 88c6818cfd Fix code style issues 2016-11-26 13:48:12 +01:00
Tomasz Kapuściński 5aa5d91ecb Fix compilation errors in half.cpp 2016-11-04 18:34:49 +01:00
Tomasz Kapuściński c5b5435b4a Added half-precision floating-point format implementation 2016-11-04 11:35:55 +01:00
krzys-h 3b9b9b322a Changed mouse scaling (again) 2016-06-21 13:07:40 +02:00
Tomasz Kapuściński 213fd6b203 Added blur effect when the game is paused (issue #656)
Might be unstable, needs more testing. To enable, add PauseBlur=1 to [Experimental] section in colobot.ini
2016-05-21 14:27:35 +02:00
krzys-h 08f3a03547 Fixed choppy part rotation animations, closes #742
While most visible on the astronaut model, this fix actually applies to all objects
2016-03-21 20:52:21 +01:00
krzys-h 977607a934 Updated license headers 2016-02-13 14:11:30 +01:00
Piotr Dziwinski c3d4d46583 Fix missing empty line after license header 2015-08-22 17:52:07 +02:00
Piotr Dziwinski b93f610930 Fix license header in all files 2015-08-22 16:40:02 +02:00
krzys-h 303dd17d58 Improved documentation of new object interface; removed unused Get/SetSoluceName 2015-08-17 00:43:32 +02:00
Piotr Dziwinski efedb44cce Add proper initializations and remove manual memory management in remaining classes
Except CBot-related stuff of course
2015-08-14 23:44:00 +02:00
Piotr Dziwinski 11b0398c03 Include refactoring
* reordered includes according to correct style
 * removed some unnecessary includes
2015-08-02 17:49:07 +02:00
Piotr Dziwinski 7d8b56d9ab More style fixes 2015-08-02 12:06:14 +02:00
Piotr Dziwinski 3b585d9f51 Some style and whitespace fixes 2015-08-02 11:36:36 +02:00
Piotr Dziwinski b0ac2f8326 Refactor CObject interface related to crash spheres 2015-07-10 09:38:53 +02:00
Tomasz Kapuściński 1c655aeda0 Corrected the problem with pendown() hanging the game (fixes #203) 2015-05-06 21:59:29 +02:00
krzys-h 9fd6cf5449 Changed all occurences of PPC in the code to TerranovaTeam 2014-10-14 15:26:18 +02:00
Piotr Dziwinski 366d3a551e Added debug aids for lighting
* displaying positions of current lights (F11)
 * dumping info to console (F10)
 * added assert() in suspicious place in CPyro
2013-06-17 18:17:21 +02:00
Piotr Dziwinski b22d852b4c Fixed variable shadowing warnings
* fixed -Wshadow warnings
 * refactored some constructors
2013-05-27 22:29:42 +02:00
Piotr Dziwinski 8765d58b02 Fixed code formatting
* moved braces to new lines
 * fixed some function/variable names
 * fixed whitespace issues
2013-05-27 10:19:16 +02:00
Piotr Dziwinski f7f6e10c70 Added check and warning about non-power-of-2 textures 2013-05-11 21:40:09 +02:00
Piotr Dziwinski 64af5f5be0 Reverted RotateAngle to old formula
This should solve incontinuities in angle calculations, possibly
fixing the "teleportation bug"
2013-02-21 12:26:01 +01:00
Piotr Dziwinski 209c6412ae Refactoring in tests infrastructure
* all tests are now in /test/ subdirectory
 * unit tests concatenated to one executable (TODO: ui, common)
 * preparation for test environments (OpenGL and others)
 * removed old TestCBot
2013-02-03 20:03:36 +01:00
Piotr Dziwinski 5a6b3f005a Merge dev and dev-graphics 2013-01-07 19:43:04 +01:00
Marcin Zawadzki ff5c890854 Small fix in detecting language. Fixes needed to compile code using clang 2013-01-05 23:03:26 +01:00
Piotr Dziwinski d1942e1216 Correct font scaling with resolution 2013-01-04 00:29:19 +01:00
Didier Raboud 7e9ef0c042 Put common CXX flags in common variables
CMAKE_CXX_FLAGS is taken into account in all builds; build-type-specific
flags are appended to it.
2012-12-19 16:55:00 +01:00
Didier Raboud 3c976c040b Don't enforce CMake build type on users.
Only set CMAKE_BUILD_TYPE to Debug when no value is provided.
2012-12-19 16:52:17 +01:00
Piotr Dziwinski 56a170391f Split gtest and gmock, fixed using system packages
- split the bundled gtest and gmock libraries
- allowed the use of system gmock
- refactoring in CMakeLists
2012-12-16 13:22:58 +01:00
Piotr Dziwinski 8ea4736a46 Font coloring; fix for resize hack
- added font coloring and changed default color to black
- fixed resize hack incorrectly changing video config,
  but font resizing will not work for now
2012-09-30 10:56:35 +02:00
Piotr Dziwinski a394c9efec Updated docs and some Doxygen fixes 2012-09-27 20:43:20 +02:00
Piotr Dziwinski 7b6bbf79c4 Namespace and styling fix 2012-09-19 23:50:28 +02:00
Piotr Dziwinski 10c9d92cd2 Mouse wheel events, motion vectors
- added mouse wheel events
- added motion vectors to CRobotMain
- other minor changes in event.h
2012-09-19 21:23:42 +02:00
Piotr Dziwinski 6c21dceb35 Tests rewrite and Doxygen in src/math
- rewritten tests to use new framework
- updated/reformatted Doxygen
- removed legacy conversions
2012-09-11 21:14:32 +02:00
Piotr Dziwinski 1996507fd3 Documentation update
- updated Doxyfile
- added/changed file, dir and namespace descriptions
- fixed some errors in doxygen tags
2012-08-11 18:39:16 +02:00
Piotr Dziwinski 7f80ca2971 Render mode setting, refactoring
- finished SetState in CEngine
- refactored Size and IntSize back to Point and IntPoint
- other minor changes in CEngine
2012-08-11 17:17:04 +02:00
Piotr Dziwinski f7e78b21e9 Font rendering
- implemented rest of CText interface excluding some minor features
2012-08-06 20:20:50 +02:00
Piotr Dziwinski 61bfb22f27 Basic font rendering
- added basic font rendering
- minor refactoring & fixes
2012-08-03 23:23:13 +02:00
Piotr Dziwinski 5e637ca028 Switched to new style casts
- rewrote old C-style casts to new ..._cast<>
- corrected some dangerous casts
- added -Wold-style-cast to compile flags
2012-07-30 22:59:18 +02:00
Piotr Dziwinski 7c5a3514dd Video mode changing
- added video mode querying & changing
- added joystick querying & changing
- cleaned up CApplication interface
2012-07-29 15:09:53 +02:00
Piotr Dziwinski 9d59204531 Cursor drawing
- fixed cursor drawing in CEngine
- changed event loop to generate more events
2012-07-23 21:41:27 +02:00
Piotr Dziwinski 8797569d33 Texture & mouse functions; refactoring & fixes
- cleaned up and added documentation to engine.h
- refactored CEngine interface and associated structs
- added mouse handling functions in CApplication & CEngine
- fixed bugs in projection matrix setting
- changed texture loading & handling
- added const-values in CDevice & CGLDevice
- changed event management in CApplication
- other minor changes & bugfixes
2012-07-22 22:05:12 +02:00
Piotr Dziwinski f364f378cf Fixed OpenGL transformations
- fixed wrong order of transformations
- added transform_test
2012-07-18 19:08:34 +02:00
Piotr Dziwinski 54f4da8792 Fix in model loading; simple model viewer
- fixed model loading code
- added simple model viewer (model_test) in src/graphics/opengl/test
- added system time stamp code
- split the code in app/system modules to separate headers
- added debug messages in model loading
- minor fixes in OpenGL engine
2012-07-15 19:17:49 +02:00
Piotr Dziwinski 3204360515 Refactoring in math & texture modules
- moved texture-related structs to texture.h & code to texture.cpp
- cleaned up texture test code
- added Math:: namespace qualifiers to math modules for clarity
2012-07-06 19:00:22 +02:00
Piotr Dziwinski d9c5a439d0 CGLDevice implementation
- extended Gfx::CDevice interface
  - written OpenGL implementation in Gfx::CGLDevice
  - rewrote color and light module
  - added Gfx::VertexCol
  - added array casts to Math::Vector, Math::Matrix and Gfx::Color
2012-07-01 22:59:22 +02:00
Piotr Dziwinski ebed57aa22 Whitespace and language change
- changed tabs to spaces and DOS line endings to Unix
  (except in CBot and metafile)
- changed language to English
- fixed #include <d3d.h> in d3dengine.h
2012-06-26 22:23:05 +02:00
Piotr Dziwinski 3478978c21 CApplication and Gfx::CEngine interfaces & other
- added CApplication and Gfx::CEngine interfaces
- added Gfx::Material struct
- added Math::IntPoint struct
- added template for Gfx::CDevice class
- added templates for Gfx::CGLDevice and Gfx::CGLEngine classes
2012-06-24 15:41:56 +02:00