Commit Graph

245 Commits

Author SHA1 Message Date
Michael Fabian 'Xaymar' Dirks 8a897c8898 gs-vertex: Formatting and fix constructors 2018-09-27 03:07:38 +02:00
Michael Fabian 'Xaymar' Dirks 431fee7b9b gs-vertexbuffer: Do not assign uv layers that do not exist 2018-09-27 03:00:17 +02:00
Michael Fabian 'Xaymar' Dirks cace17a817 gs-vertexbuffer: Allow specifying amount of UV layers
This should reduce GPU memory usage for vertex buffers that need less UV information than the maximum allowed UV layers possible.
2018-09-27 02:57:53 +02:00
Michael Fabian 'Xaymar' Dirks c3e67bad97 gs-vertexbuffer: Formatting and various fixes
With the addition of clang-format and cppcheck, and the changes to .editorconfig, various changes need to be added.
2018-09-27 02:49:00 +02:00
Michael Fabian 'Xaymar' Dirks dac0553377 project: Revert to 4-wide tab 2018-09-27 02:44:56 +02:00
Michael Fabian 'Xaymar' Dirks a244914ca3 cmake: Add Template and Inline Suppression support for CppCheck 2018-09-27 02:43:28 +02:00
Michael Fabian 'Xaymar' Dirks 069085d0af project: Update project URL 2018-09-26 01:22:54 +02:00
Michael Fabian 'Xaymar' Dirks dc0104850a cmake: Massive update ported from obs-amd-encoder
This includes support for included, referenced, packaged and downloaded obs-studio libraries, cppcheck, packaging using cpack, 7z, zip or InnoSetup and more.
2018-09-26 01:17:08 +02:00
Michael Fabian 'Xaymar' Dirks 9e58f4a4f7 project: Add clang-format support 2018-09-26 01:15:53 +02:00
Michael Fabian 'Xaymar' Dirks a54a526c4b plugin: Write plugin version to log file on load and unload 2018-08-13 01:01:15 +02:00
Michael Fabian 'Xaymar' Dirks 8ab050ad29 tools: Improve make-solutions.bat 2018-04-29 03:42:15 +02:00
Michael Fabian 'Xaymar' Dirks e8da137ab6 filter-custom-shader: Basic custom shader support
The Custom Shader Filter is now capable of rendering a custom shader using the gfx::effect_source class as a backend. An example shader is provided for starting off, more advanced examples may come later.

Related: #5
2018-04-29 03:07:26 +02:00
Michael Fabian 'Xaymar' Dirks 0957ce0bb9 gfx-effect-source: Implement basic functionality
Rendering is now possible, although some parameter types are not yet supported. So far, booleans and floats will work fine, integers will cause an error in OBS Studios rendering code for an unknown reason.
2018-04-29 03:05:53 +02:00
Michael Fabian 'Xaymar' Dirks b4de874ec9 gs-effect: Work around for an obs-studio issue with Integer parameters 2018-04-29 03:01:20 +02:00
Michael Fabian 'Xaymar' Dirks 6057101f26 gs-vertexbuffer: Fix usage of gs_vertexbuffer_get_data() 2018-04-29 03:00:40 +02:00
Michael Fabian 'Xaymar' Dirks e200127595 source-mirror: Fix compiler warnings 2018-04-29 03:00:04 +02:00
Michael Fabian 'Xaymar' Dirks c9ed74a3f9 gs-texture: Additional type safety and new methods 2018-04-29 02:59:51 +02:00
Michael Fabian 'Xaymar' Dirks d59b54811f utility: Code for using enumerations as flags/bitsets
It baffles me that this is not just part of the language itself from the beginning, it's used nearly everywhere and is needed for type safety.
2018-04-29 01:02:05 +02:00
Michael Fabian 'Xaymar' Dirks 365b390e68 source-mirror: Description for Audio property 2018-04-29 00:16:31 +02:00
Michael Fabian 'Xaymar' Dirks af71a7cc1d filter-blur: Allow applying Blur to a sub-region of the source only
The Blur Filter can now be applied to a region inside the source itself, the inverse of that region, and/or a feathered version of that region. This allows for easier scene setups where only some parts need to be blurred, but the rest can be left as is.

Fixes #12
2018-04-29 00:14:29 +02:00
Michael Fabian 'Xaymar' Dirks 1ba9145fbd filter-blur: Use only a single Gaussian Kernel Texture 2018-04-28 14:41:18 +02:00
Michael Fabian 'Xaymar' Dirks 6c1e874369 filter-blur: Refactoring, formatting and copyright 2018-04-28 13:59:54 +02:00
Michael Fabian 'Xaymar' Dirks 0cd4520774 util-math: Bilateral Blur 2018-04-28 12:45:23 +02:00
Michael Fabian 'Xaymar' Dirks c4942da235 source-mirror: Refactoring 2018-04-28 12:45:11 +02:00
Michael Fabian 'Xaymar' Dirks 410ba9df88 source-mirror: Implement mirroring of Source Audio
From this point on, Source Mirror is now capable of real-time mirroring of Video and Audio. This can help if you need different filters per scene for your microphone or voice chat, depending on the scene (audio ducking for pause scene, no audio ducking for live gaming).
2018-04-27 23:38:49 +02:00
Michael Fabian 'Xaymar' Dirks 57c2daa80c obs-audio-capture: Helper class for automated capture of source audio 2018-04-27 23:34:26 +02:00
Michael Fabian 'Xaymar' Dirks 1a6b26ee7a project: Add Windows and Linux build status from CI 2018-04-26 13:07:17 +02:00
Michael Fabian 'Xaymar' Dirks 9f06d5ad49 cmake: Improve support for Linux and MacOS
Standalone builds should not assume that everything is Windows and in the future hopefully work out of the box for Linux and MacOS. This is required if CI should also work for Linux and MacOS.

Related: #13
2018-04-26 12:59:07 +02:00
Michael Fabian 'Xaymar' Dirks e621b69aa2 source-mirror: Ensure that we have a source on video_tick 2018-04-24 17:07:06 +02:00
Michael Fabian 'Xaymar' Dirks 5e4a781912 source-mirror: Ensure that we have a proper source on activate() 2018-04-24 15:31:51 +02:00
Michael Fabian 'Xaymar' Dirks d8d60f7a21 gfx-effect-source: Check for effect == nullptr in test_for_updates 2018-04-24 13:58:07 +02:00
Michael Fabian 'Xaymar' Dirks 49964e15be gfx-source-texture, source-mirror: Prevent recursion caused by Source Mirror 2018-04-24 13:48:42 +02:00
Michael Fabian 'Xaymar' Dirks 31342239bc ci: Remove unused cache entry 2018-04-24 12:40:22 +02:00
Michael Fabian 'Xaymar' Dirks 20f6a0afca ci: Use proper paths and generators 2018-04-24 12:36:57 +02:00
Michael Fabian 'Xaymar' Dirks 831a2251a4 ci: Automated building and packaging 2018-04-24 12:33:54 +02:00
Michael Fabian 'Xaymar' Dirks 19506f1997 cmake: Many fixes and improvements
* Standalone builds no longer require you to have a compiled version of OBS Studio. Instead the project will now download the last compatible libOBS version from CI and use it for linking.
* The project version now has a tweak field again, which is either 0 or determined by the number of git commits since the last release tag.
* The Install command now properly uses CMAKE_INSTALL_PREFIX instead of INSTALL_DIR.
* Packaging is now done using CPack instead of custom commands.
2018-04-24 12:31:43 +02:00
Michael Fabian 'Xaymar' Dirks ec19f44f96 project: Don't prefix includes with "libobs/" 2018-04-23 17:53:27 +02:00
Michael Fabian 'Xaymar' Dirks 0b5a848c32 cmake: Improve automatic versioning 2018-04-23 17:52:40 +02:00
Michael Fabian 'Xaymar' Dirks 118cd2c6d8 tools: Only create solutions for Visual Studio 2017 (Windows) 2018-04-23 17:26:54 +02:00
Michael Fabian 'Xaymar' Dirks fc78bd83a6 filter-custom-shader: Initial version based on gfx::effect_source 2018-04-09 13:28:13 +02:00
Michael Fabian 'Xaymar' Dirks 9f91039ca0 util-memory: Don't use _dbg versions for aligned_alloc/free 2018-04-09 13:27:51 +02:00
Michael Fabian 'Xaymar' Dirks 5e9f113553 gfx-effect-source: Base class for Custom Shaders
gfx::effect_source is the base class for all Custom Shader Sources and Transitions, which reduces the overall workload to a single file, but unfortunately also reducing the effective customization per source a bit.
2018-04-09 13:27:22 +02:00
Michael Fabian 'Xaymar' Dirks 9ae8ecc3e1 source-mirror: Fix crashes caused by uncaught exception 2018-04-09 13:23:57 +02:00
Michael Fabian 'Xaymar' Dirks 5bad1adf8f cmake: Add project group for Shaders (Custom Shader Source) 2018-04-09 13:22:50 +02:00
Michael Fabian 'Xaymar' Dirks 92820bf606 filter-custom-shader: Add example shader 2018-03-20 12:51:08 +01:00
Michael Fabian 'Xaymar' Dirks fe05dca51e gfx, gs: Fix commits 9f518764b6 & 2adfa5765c 2018-03-20 12:50:17 +01:00
Michael Fabian 'Xaymar' Dirks 22eb53a856 gfx: Initial code for an Effect Source (Custom Shader)
This class will be used by any Custom Shader type (Filter, Source, Transition) and as such is pretty much used as the basis for all of it.
2018-03-20 12:45:41 +01:00
Michael Fabian 'Xaymar' Dirks 2adfa5765c gs: Rename to snake_case instead of PascalCase
This should prevent mishaps with upper/lowercase typos and fits in better with the C++ standard code, which is also in snake_case.
2018-03-20 12:44:02 +01:00
Michael Fabian 'Xaymar' Dirks 9f518764b6 gfx: Move util::SourceTexture to gfx::SourceTexture
'gfx' is the new preview for Graphics utilities that do not act as a wrapper around the Graphics Subsystem directly.
2018-03-08 11:28:23 +01:00
Michael Fabian 'Xaymar' Dirks 53073660c0 Merge branch 'filter-custom-shader' 2018-03-05 16:50:57 +01:00