Commit Graph
1664 Commits
Author SHA1 Message Date
Taylor Richards f2a99117a6 always init path renderer
This is required for truetype fonts, otherwise it crashes during font
loading. It still wastes a good bit of memory however and will need
to be addressed with a more permanent solution in the future.
2022-01-18 06:39:50 -05:00
Taylor Richards 422c20d396 avoid initializing stuff that standalones don't need 2022-01-18 06:38:34 -05:00
wookieejedi 589da9648f add comment noting default font height 2022-01-08 16:08:51 -05:00
wookieejedi 0f3f19d5d8 fix spelling 2022-01-08 15:29:20 -05:00
wookieejedi 7f8957ba0d Fix text overflow on multi-related screen
Multiplayer screens such as PXO lobby, chat boxes, and multi-game setup screens had hard coded values for the number of lines to display. These would only work correctly with the default .vf font01 from retail. If a mod or user used a TTF or other .vf font than text would spill over. This PR makes these values take into the account the font used.

Tested and works as expected with TTF fonts and the retail fonts.  Marking as draft to see what others think.
2022-01-08 13:57:58 -05:00
EatThePath dc0f394afd Moved the PPC tonemapper intermediate calculations to C-side to clean up shader compatibility with older versions of opengl (#3857) 2021-12-31 21:27:46 -05:00
EatThePath c5410c6381 Lt22 (#3801)
* New configuration table for HDR tonemapping and related data.

* lighting profiles conslidation and cleanup

* Appease CI

* Lighting profiles parser now parses all tonemapping options

* simplified light profile parsing logic further

* Refrences for tonemapping functions added

* cleaned unused function definition

* Extra documentation for lighting tables

* Fixed lighting profile value label error

* Converted current_piecewise_values to const reference
2021-12-03 04:50:45 +09:00
Goober5000 1819265c65 Merge pull request #3777 from Kiloku/draw_rotated_images
Allow drawing rotated bitmaps
2021-11-20 18:08:07 -05:00
Kiloku b557017b20 Fix documentation 2021-11-20 19:36:03 -02:00
Kiloku ad308757f4 Change rect rotation to use radians 2021-11-20 18:29:00 -02:00
Kiloku 67966cec9d Use radians rather than degrees for angles 2021-11-20 18:07:30 -02:00
Kiloku 719c047714 Avoid uninitialized variable 2021-11-14 16:41:38 -02:00
Kiloku 3038269804 allow drawing rotated bitmaps 2021-11-14 16:26:00 -02:00
David Gibson 1c2b83f6aa Removing dead code paths 2021-10-17 11:05:37 -05:00
BMagnu 1da6f4a6a2 Simplistic Ship Transparency (#3436)
* Basic per-render-model + per-ship tools

* Tidy up settable transparency for standalone use

* Force Alpha Premultiplied on external Alphamult

* Fix sexp description.
2021-10-08 21:49:13 +09:00
Kiloku ecea40e38f Allow Lua Scripts to draw rotated rectangles (#3623)
* Adds the angle parameter to gr.DrawRectangle, allowing scripters to draw arbitrarily rotated rectangles.

* Revert "Adds the angle parameter to gr.DrawRectangle, allowing scripters to draw arbitrarily rotated rectangles."

This reverts commit b1a0480f32.

* Adds the angle parameter to gr.DrawRectangle, allowing scripters to draw arbitrarily rotated rectangles.

* fix wrong vertex position for unfilled rotated rectangles

* Adds a @param entry to gr_rect explaining the angle parameter.

* Attempt to fix operations with int to float conversions.

* Fix parameters in documentation string

* Change NULL to nullptr to satisfy modern coding standards

* Trying to make code a bit cleaner
2021-10-02 13:11:35 -04:00
Allen A. Babb 2fa7ddc552 Merge pull request #3481 from MageKing17/bugfix/mainhall-misc-apng-animations
Fix APNG misc mainhall animations.
2021-08-07 13:09:37 -05:00
Joshua Glatt 028168d395 Add in-game options menu options for lightshafts and bloom (#3501)
* Add in-game options menu options for lightshafts and bloom

* move impl of new PostProcessingManager functions to .cpp file
2021-06-20 21:04:34 -04:00
m!m f7c3ab85d3 Merge pull request #3524 from asarium/build/removeDeprecatedCMakeStuff
Remove usage of deprecated CMake module
2021-06-20 18:27:14 +02:00
asarium b6fe676072 Remove usage of deprecated CMake module
Also removed all checks for C++11 support since we only support
compilers that have this already.
2021-06-20 12:56:20 +02:00
Goober5000 f1deee8566 Merge pull request #3354 from Goober5000/gs_state_invalid
actually use GS_STATE_INVALID
2021-06-19 17:49:38 -04:00
MageKing17 5d58d9ca7a Reset APNG misc animations properly (fixes #3399).
Changes the `current_frame` checks in generic.cpp so that the last frame can actually be reached (allows the mainhall code to tell the misc animation has finished), and adds a `generic_anim_reset()` function that gets called instead of manually setting `current_frame` and `anim_time` to 0. This should fix #3399.
2021-06-08 12:27:15 -07:00
BMagnu 87f449415f Self-Shadow on 3D-Cockpits (#3437)
* Improve wookieejedi's cockpit shadows

* Rename stray bool

* Make shadow's eye pos explicit

* Tidy up stub declaration

* Add configurable shadows + requests by m!m

* make variable lowercase
2021-05-21 08:15:20 +00:00
wookieejedi 76af0129f3 Expose Shadow Cascade Distances
The shadows distances were tuned/added by swifty with the following logic:
`// these cascade distances are a result of some arbitrary tuning to give a good balance of quality and banding.`

Mods, especially TCs, may have very different sized ships compared to FS, and as such desire more precise control over shadow cascade distances.

This PR exposes those values with settings in the `game_settings.tbl`.

PR is tested and works as expected.
2021-05-17 17:17:55 -04:00
Asteroth d971f34ee2 make all asinf and acosf safe (#3384) 2021-05-05 00:53:24 -04:00
Joshua Glatt 144d484c85 Replace rand() calls with a Random class (#3332) 2021-05-04 18:26:06 -07:00
Goober5000 a3c5186635 add missing newlines in several mprintf statements (#3409)
Fixes #3407, and I used a regex search to find what I hope are all other examples.
2021-05-02 23:53:40 -04:00
MageKing17 76dccbe07d Revert "Fix APNG Animation Framecounter" 2021-04-24 18:53:52 -07:00
Birk Magnussen 6bea921fbe Add short explanation 2021-04-24 23:04:00 +09:00
Birk Magnussen 79f5eda0d6 Fix APNG Animation Framecounter 2021-04-24 16:00:09 +09:00
Goober5000 8f5064b353 actually use GS_STATE_INVALID
Make `gameseq_get_state` return GS_STATE_INVALID if the stack is invalid.

With this change, the check for stack validity can be removed in `gr_flip`.
2021-04-02 00:11:45 -04:00
JohnAFernandez 6bd7a43e3d Add a safety check to the $On Frame: Hook
So #3007 is a larger bug than just trying to access the player's target.  The real problem is that the game state is not changed from `GS_STATE_GAME_PLAY` during the mission load when restarting the mission.  So the script thinks it's in the mission, tries to access the target and then crashes.  But this won't be the only bug.  Any script that tries to access data on Frame will run into possible problems on mission restart.
2021-03-31 15:25:38 -04:00
Baezon 3c53b74e5e switch to exponential nebula fog 2021-03-04 23:02:24 -05:00
David Gibson 373d119f1a modernize nullptr for tidy 2021-01-23 21:58:47 -06:00
David Gibson 7cb2338325 removed now-superflous element counting loop from gr_opengl_deferred_lighting_finish 2021-01-23 21:10:54 -06:00
David Gibson ddcc94b0da Extended the tube light cylinder volumes for deferred lighting to encompass the end cap spheres, removed those spheres, and adjusted the shader handling of tube lights to account for this. 2021-01-23 20:56:07 -06:00
David Gibson 9a866434b8 Removed the end light volumes from the defered lighting setup for tubelights. 2021-01-23 17:31:12 -06:00
m!m 77adaa6d86 Merge pull request #3004 from asarium/scripting/monochromeUv
Add AA bitmap support for standard gr.drawImage
2020-12-24 16:14:44 +01:00
SelfGamer a47cfb7e7c Expose disposing FBO's to scripting (#3003)
* Expose disposing FBO's (with the option to keep the Bitmap Alive) to scripting

* Modernize nullptr

* Moved RenderTarget clearing to own public API

* Fixed Obsolete Comment

* Fix bad deletion of FBOs

* Resolve Memory Leak

* Change FBO cleanup to not reuse old ID's

* FIx oversight

* FIx oversight 2
2020-12-23 21:54:03 +01:00
asarium f25d98cebd Add AA bitmap support for standard gr.drawImage
Since that function already has full support for UV scaling it makes
sense to unify the behavior in one function instead of having a separate
monochrome function that does weird things.

Also deprecates that function since all its use cases are now covered by
drawImage.
2020-12-21 12:48:58 +01:00
Goober5000 c18b1b63fd another model to model_instance refactor
Remove arc information from bsp_info and move it to submodel_instance.  Add a model instance to each debris chunk to keep track of it.
2020-12-20 14:51:05 -05:00
Goober5000 ef0197971f fix some sort of build problem in the continuous integration 2020-11-18 21:11:09 -05:00
asarium 9da5cc17a3 Add type safe handle for graphics buffers
This converts the previous plain-int type for a buffer handle to an
instance of our ID class which provides type safety.
2020-10-25 12:16:05 +01:00
m!m 51c8b22905 Merge pull request #2809 from asarium/graphics/2dFuncObs
Change graphics interface to function objects
2020-10-22 19:24:09 +02:00
asarium 287b843839 Change graphics interface to function objects
This will make it easier to have a graphics interface without relying on
global objects since the object can be kept alive in the function
object. No other functional changes since the existing syntax is also
valid for function objects.
2020-10-17 15:15:33 +02:00
asarium 4a0a8463ee Add first basic rendering with Vulkan
This is basically the tutorial from vulkan-tutorial.com adapted to using
VulkanHpp and with some refactorings that extract some locigally
self-contained code.

Currently only draws a simple colored triangle.
2020-10-14 22:21:45 +02:00
Goober5000 23b3aadf9b Message size fix (#2784)
* Fix underline length calculation in message scrollback
* Use SCP_string for message source (which allows ships with long display names to work without crashing) and message text
* Upgrade assorted functions to work with SCP_string
2020-10-06 14:31:03 -04:00
asarium 56dc373bb9 Add support for using Vulkan GLSL code with OpenGL
This is an effort to be able to use the same GLSL code for both Vulkan
and OpenGL. This is done by first compiling the Vulkan GLSL code to
SPIR-V and then using a custom tool (which uses SPIRV-Cross) to convert
that back into GLSL 1.50 compatible code.

The required tool will be downloaded by CMake when glslc is found in the
path. This is included in the Vulkan SDK. To avoid having a hard
dependency on this, the generated files are included in the VCS and are
only regenerated when glslc is found on the system.
2020-09-27 12:45:05 +02:00
Goober5000 8a3556b648 Merge pull request #2738 from Goober5000/file_fixes
fix getPath() and add getName()
2020-09-15 11:55:07 -04:00
Goober5000 30a0946e47 update cf_find_file_location based on Taylor's patch 2020-09-14 19:16:35 -04:00