Commit Graph
129 Commits
Author SHA1 Message Date
asarium 3fcb731621 Refactor shader handling
This fixes a few of the bad design descisions of previous shader
iterations. This uses a dedicated class for managing the resources and
uniform locations of a shader program.

Uniforms are also stored in this object which makes a lot more sense
than storing them in the OpenGL state where they had to be reset every
time a new shader was used.

There are still a lot of possible enhancments to make, e.g. by using
uniform blocks and buffers instead of standard uniforms which would make
uniform location handling easier.

Another optimization that I will investigate is reducing the amount or
different compiled shaders by turning some of the current compile-time
defines into bool uniforms.
2016-08-29 12:38:38 +02:00
asarium 173041e03a Remove is_minimum_GLSL_version()
Since OpenGL Core is required now that function would always return true
so it can be removed.
2016-08-26 22:16:30 +02:00
asarium beb9288c73 Merge branch 'opengl_core_materials' of https://github.com/SamuelCho/fs2open.github.com into ogl_core/merge
Conflicts:
	code/graphics/gropengl.cpp
	code/io/cursor.cpp
	freespace2/SDLGraphicsOperations.cpp
2016-08-23 16:05:28 +02:00
SamuelCho 7b2c7b6ccc Make sure distortions are rendered after the effect framebuffer is copied. 2016-08-22 20:49:09 -07:00
SamuelCho 311cf769df Reconciled bit flags. 2016-08-20 19:39:10 -07:00
Fabian Woltermann 1acfaa8157 Converts model subsystem flags 2016-08-19 14:59:15 +02:00
Fabian Woltermann 127976cd74 Weapon info flags conversion (#851) 2016-08-18 23:17:41 -07:00
SamuelCho a481999a24 OpenGL Core support. Introduction of material based draw system. Rewrote geometry batcher. 2016-08-17 00:13:19 -07:00
Fabian Woltermann 770fce8de5 Bitset flags -- take 2 (#775)
This introduces a new mechanism for handling bit flags. Instead of using an int (or two, or three) to write bits into, this uses the std::bitset in a wrapper class that accepts an enum class as input. This means that certain classes of errors we've had a few of in the engine, where a coder used the wrong set of flags or checked them against the wrong variable (SF_STEALTH vs SIF_STEALTH, for example) can now be detected at a compiler level rather than not at all.
2016-08-12 16:13:50 -07:00
m!m 22c0255277 Fix a bunch of 64-bit MSVC warnings (#709)
* Fix a bunch of 64-bit warnings

* Fix Linux compilation error

* Fix Mac error

* Fix some issues

* Fix more GCC warnings

* Remote unwanted change

* Remove accidentally readded file

* Fix wrong limit check

* Use BEAM_INDEX macro for getting beam object index

* Fix 32-bit warning

* Use BEAM_INDEX instead of pointer arithmetic
2016-08-09 11:08:54 -07:00
Fabian Woltermann 9f0897d916 Fixes issue when rendering thrusters on weapon models 2016-07-28 20:04:40 +02:00
asarium 1bcd5400d3 Move build system to CMake 2016-07-22 12:07:19 +02:00
MageKing17 70529dbd5a Deprecate -nohtl and -brief_lighting.
-nohtl hasn't worked for years, and -brief_lighting was always supposed to be a temporary flag before making the behavior always on.
2016-07-08 09:39:29 -07:00
SamuelCho dd73d8fb63 New lighting model based off of Blinn-Phong and Fresnel-Shlick. Introduced -reflect maps. New gloss parameters for specular power. High dynamic range rendering. Improved bloom pass. 2016-07-05 23:15:08 -07:00
niffiwan 0b20b15c2c Fix issues found by Axem
Fix silly issue preventing getFrame() from working
Remove infinite loop when calculating frame num
Convert more animations to use new frame calc function
2016-05-10 19:42:20 +10:00
niffiwan 50c791c998 Add support for non-streaming apngs
i.e. apngs (pre)loaded into bmpman slots

handles apng variable frame delays
Includes new lua function (getFrames) to find the current frame for
apngs. Also uses new function to correctly display apngs for mission
loading animations, ship thrusters & engine glows.
2016-05-10 19:42:20 +10:00
Peter Mitsis 180674154c trig: Use floating point versions of trig functions
Replaces calls to double-precision floating point trig functions with
calls to single-precision floating point trig functions as follows:
    cos() -> cosf()
    sin() -> sinf()
    tan() -> tanf()
    acos() -> acosf()
    asin() -> asinf()
    atan() -> atanf()

This allows the compiler to avoid generating unnecessary instructions
that convert a float to a double and then a double back to a float.

Signed-off-by: Peter Mitsis <[email protected]>
2016-04-24 21:56:06 -04:00
Echelon9 5d593f0df0 Plumb through is_minimum_GLSL_version() 2016-01-03 16:33:04 -05:00
MageKing17 64c9b272e7 Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info
Conflicts:
	code/pilotfile/pilotfile.cpp
2015-08-19 11:53:25 -07:00
Goober5000 bd3cd7eb18 Merge pull request #195 from Echelon9/fix/sort-uniq-includes
Review and refactor #include's
2015-08-19 00:05:02 -04:00
MageKing17 dc80ae0c9a Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info
Conflicts:
	code/ship/ship.cpp
2015-08-06 00:25:42 -07:00
Echelon9 aae7c47748 Fix: lab/lab.cpp:943:9: warning: declaration of ‘j’ shadows a previous local [-Wshadow] 2015-07-06 21:14:45 +10:00
Echelon9 c220480075 Fix: lab/lab.cpp:2497:45: warning: declaration of ‘color’ shadows a global declaration [-Wshadow] 2015-07-05 00:40:13 +10:00
Echelon9 e613f4db7d Simplify duplicative lab/ includes, which are in lab/wmcgui.h 2015-06-22 20:24:30 +10:00
Echelon9 c5493bb480 Scripted sort and uniq on (internal) project includes. Improves search time and as a by product removed a number of duplicative includes. 2015-06-22 20:24:30 +10:00
MageKing17 ab9d2e20fb Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info
Conflicts:
	code/ship/ship.cpp
2015-06-18 14:40:53 -07:00
Cliff Gordon 2d662075c3 Merge remote-tracking branch 'origin/master' into fix/triplemon_hud 2015-06-17 10:11:57 -05:00
SamuelCho 2ba39e6b6d Refactored how color setting is done for model rendering. Fixes Mantis 3163. 2015-05-29 21:54:33 -07:00
MageKing17 7e696a55d2 Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info
Also added model_icon_angles to the ship_info() constructor, and model_icon_angles, thruster_glow_noise_mult, and min_engine_vol to ship_info::clone() and and ship_info::move().

Conflicts:
	code/ship/ship.cpp
	code/ship/ship.h
2015-05-28 23:49:33 -07:00
Lari Nieminen 72a082c9eb Added a $Thruster Glow Noise Mult ship table entry for decreasing/increasing the effect of noise applied to the glow radius. 2015-05-23 00:11:43 +03:00
Cliff Gordon a4c1f89720 Merge remote-tracking branch 'origin/master' into fix/triplemon_hud
Conflicts:
	code/freespace2/freespace.cpp
2015-05-20 17:15:15 -05:00
MageKing17 764c1ab03f Fix F3 lab using old idx value.
This was causing everything to use the Ship_info index of the size of the species vector; for FS2, that meant 3, which meant GTF Ares.
2015-05-18 10:09:29 -07:00
MageKing17 274a32e1ac Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info
Conflicts:
	code/model/modelread.cpp
	code/ship/ship.h
2015-05-12 19:22:58 -07:00
SamuelCho 90c8025588 Code cleanup before the big soft shadows and deferred lighting merge into master. 2015-05-08 21:55:28 -07:00
SamuelCho 094c5fe302 Resolve faster ibx and improved profiling merges. 2015-05-08 20:53:59 -07:00
Lari Nieminen ce853a5f07 Added a "Show Destroyed Subsystems" flag to ship lab for viewing -destroyed submodels. 2015-05-08 01:20:58 +03:00
Cliff Gordon 0ce31bf471 [fix/triplemon_hud] Yarn's triple-monitor fix, see http://www.hard-light.net/forums/index.php?topic=89262.0. Patch tweaked to work around changes in 9aed627. 2015-05-06 10:40:45 -05:00
MageKing17 202bd3a5dc Merge branch 'master' of ssh://github.com/scp-fs2open/fs2open.github.com into ship_info 2015-05-05 14:39:01 -07:00
Swifty c620372357 Soft shadows, deferred lighting, and various major graphics optimizations. 2015-05-02 14:35:37 -07:00
asarium a7398d7f5c Fix for Coverity 1093689: Resource leak 2015-05-02 18:19:28 +02:00
MageKing17 1591237acf Reverting recent string of commits.
Since they didn't go through code review (and break compilation), reverting the recent string of commits (just used "git revert -n 5042c44..05b4635").
2015-04-29 16:19:59 -07:00
zookeeper 400fd0f9a8 Fixed $Thruster Glow Noise Mult not having effect in the ship lab.
git-svn-id: svn://svn.icculus.org/fs2open/branches/zookeeper@10789 387891d4-d844-0410-90c0-e4c51a9137d3
2015-04-29 23:07:41 +03:00
MageKing17 bc0c7cf4c5 Vectorization of Ship_info.
Converts Ship_info from a ship_info[] to an SCP_vector<ship_info>. ship_info now has proper constructors, assignment operators, and a destructor. Num_ship_classes removed; various references to Num_ship_classes and/or MAX_SHIP_CLASSES (which remains for various other structures which need it) changed to Ship_info.size() instead.

This doesn't make the ship class limit dynamic, but it is a preparatory step to get there.
2015-04-27 00:01:22 -07:00
The_E d3089bb406 Fix for Mantis 2882 by Mageking17 (change-team-color with None color results in error)
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10914 387891d4-d844-0410-90c0-e4c51a9137d3
2014-07-14 19:02:32 +10:00
chief1983 ae351d2924 Fix Mantis 2886 - Option to render External weapon models, besides Tech models, in Weapon lab, from FUBAR.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10907 387891d4-d844-0410-90c0-e4c51a9137d3
2014-07-14 19:02:31 +10:00
Echelon9 bc568a9149 Address clang warning - lab/lab.cpp:912:8: warning: declaration shadows a local variable [-Wshadow]
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10881 387891d4-d844-0410-90c0-e4c51a9137d3
2014-07-14 19:02:30 +10:00
The_E 6e91857745 From Yarn: Fixes interface graphics scaling issues. If, for some reason, you want to have the interface graphics stretched, use the -stretch_menu commandline flag.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10544 387891d4-d844-0410-90c0-e4c51a9137d3
2014-03-30 12:39:54 +10:00
Wanderer ca0bcd5dbf Fix for Mantis #2806 - added option to rotate the turrets according to 'initial' state animation code in the lab - option enabled by default but can be toggled via render options
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10022 387891d4-d844-0410-90c0-e4c51a9137d3
2013-11-10 18:28:58 +10:00
Goober5000 6836199eeb ship_subsys is now a class
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10021 387891d4-d844-0410-90c0-e4c51a9137d3
2013-11-10 18:28:58 +10:00
Wanderer 6cbc4f78c4 Fix to prevent invalid weapon bitmap references from being created in the lab.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10016 387891d4-d844-0410-90c0-e4c51a9137d3
2013-11-10 18:28:57 +10:00