Commit graph

279 commits

Author SHA1 Message Date
jpark37 83c89d06b5 libobs-d3d11: Log display color space info
Add DXGI_COLOR_SPACE_TYPE and SDR white level when available for HDR
characteristics.

GetPathInfo/IsInternalVideoOutput functions were copied from MS docs.
2022-01-07 15:18:16 -08:00
jpark37 e77421a805 libobs-d3d11: DuplicateOutput1 for DXGI capture
Despite DuplicateOutput deing documented to always return BGRA8, it is
seen fluctuating between BGRA8 and RGBA16F when HDR is enabled.
DuplicateOutput1 seems to provide a stable format whether SDR or HDR.

Also update the texture recreation logic to check for format changes.
2021-12-21 02:38:42 -08:00
jw0z96 33a6d2a5fd libobs: Expose blending operation types 2021-12-20 09:06:38 -08:00
qiongzai.sun 0d8c98851e libobs: Fix gs_texture_2d::BackupTexture with GS_TEXTURE_CUBE 2021-11-23 20:52:40 -08:00
VodBox c8e417057a libobs, libobs-d3d11: Add support for NT Handle shared textures
Adds support for using shared textures that were made with the
D3D11_RESOURCE_MISC_SHARED_NTHANDLE flag.

This increases the minimum required Windows version to Windows 8 or the
Platform Update for Windows 7. As official support is only for Win 8+
this does not change official support.
2021-11-20 16:34:28 +13:00
jpark37 a9958b96d2 libobs-d3d11: Fix present skip comment
It's about the CPU being ahead of the GPU, not flip queue being full.

Also fix variable typo.
2021-09-15 15:09:25 -07:00
jpark37 608cd3867e libobs-d3d11: Use waitable object to avoid stalls
Skip Present if the waitable object says the swap chain isn't ready.
2021-09-15 02:52:12 -07:00
jpark37 fbe3e7e14b libobs-d3d11: Simplify DXGI factory creation
QueryInterface probably supplies all factories on OS. We'll see.
2021-09-15 02:52:12 -07:00
jpark37 01b5571c47 libobs-d3d11: Prefer ComPtr Clear() over Release() 2021-09-15 02:52:12 -07:00
jpark37 00941ffc84 libobs-d3d11: Use ALLOW_TEARING if supported 2021-09-11 01:33:55 -07:00
jpark37 7ce2a60a1d libobs-d3d11: Use FLIP_DISCARD on Windows 11
Windows 11 support for DISCARD swap effect seems to be buggy and slow.
Use FLIP_DISCARD instead. Staying with DISCARD on Windows 10 because of
reports of flickering that hopefully won't happen on Windows 11.

We're also not using ALLOW_TEARING because it seems to break after an
OBS cycle of minimize/restore on both Windows 10 and 11. The swap chain
displays a stale image. Not sure if ALLOW_TEARING would be beneficial
even if it was working.
2021-09-10 20:19:24 -07:00
jpark37 5457524f5a libobs-d3d11: Avoid vector usage
Allocations need global heap lock, which is bad.
2021-08-15 00:12:14 -07:00
jpark37 993c46c8a2 libobs-d3d11: Relax texture format copy check
SRGB and non-SRGB formats are compatible for copy.
2021-07-11 08:26:29 -07:00
jpark37 6d59cf19e9 libobs-d3d11: Use typeless texture for duplicator
This allows us to use an SRGB SRV for automatic decompression.
2021-07-11 08:26:29 -07:00
Lin c83eaaa51c libobs-d3d11: Default to Intel IGPU on IGPU+DGPU systems
On systems that have both Intel iGPU and Intel dGPU at the same time,
default/prioritize running OBS the iGPU instead to improve performance.
The user can still choose the dGPU if they change the adapter index, but
the adapter index will now be the second value instead of the first
value. (-Jim)
2021-03-21 22:45:08 -07:00
Lin 1e106c8bb8 libobs-d3d11: Split InitFactory to InitAdapter
Splits off the adapter initialization to its own function so we can
modify what happens in between those actions. (-Jim)
2021-03-21 22:45:08 -07:00
jpark37 c03320cfc2 libobs: Add function to count GPU adapters
Only implemented for D3D11 for now.
2021-03-12 20:59:31 -08:00
Richard Stanway 13cfd95fef libobs-d3d11: Avoid temporary ComPtr objects
The ternary operator promotes both sides to the same type if possible,
so it created and destroyed a temporary ComPtr. Found by PVS Studio.
2021-03-04 19:29:00 +01:00
jpark37 2b652cc763 libobs: gs_duplicator_get_monitor_index
Helper function to find DXGI output index of HMONITOR.
2021-01-26 17:11:04 -08:00
jpark37 66259560e0 libobs: Add dormant SRGB format support
GS_RGBA, GS_BGRX, and GS_BGRA now use TYPELESS DXGI formats, so we can
alias them between UNORM and UNORM_SRGB as necessary. GS_RGBA_UNORM,
GS_BGRX_UNORM, and GS_BGRA_UNORM have been added to support straight
UNORM types, which Windows requires for sharing textures from D3D9 and
OpenGL. The D3D path aliases via views, and GL aliases via
GL_EXT_texture_sRGB_decode/GL_FRAMEBUFFER_SRGB.

A significant amount of code has changed in the D3D/GL backends, but the
concepts are simple. On the D3D side, we need separate SRVs and RTVs to
support nonlinear/linear reads and writes. On the GL side, we need to
set the proper GL parameters to emulate the same.

Add gs_enable_framebuffer_srgb/gs_framebuffer_srgb_enabled to set/get
the framebuffer as SRGB or not.

Add gs_linear_srgb_active/gs_set_linear_srgb to instruct sources that
they should render as SRGB. Legacy sources can ignore this setting
without regression.

Update obs_source_draw to use linear SRGB as needed.

Update render_filter_tex to use linear SRGB as needed.

Add gs_effect_set_texture_srgb next to gs_effect_set_texture to set
texture with SRGB view instead.

Add SRGB helpers for vec4 struct.

Create GDI-compatible textures without SRGB support. Doesn't seem to
work with SRGB formats.
2021-01-21 07:42:13 -08:00
jpark37 c72b5de23e libobs-d3d11: Support typeless textures
In the future, we may share or wrap typeless textures to support SRGB
and non-SRGB views.
2021-01-11 14:18:12 -08:00
jpark37 2d547cf669 libobs: Allow wrapping D3D11 object with gs_texture_t
This can be useful for reading from textures provided by middleware.
2020-11-24 14:39:56 -08:00
jp9000 7993179466 cmake: Add cmake folders 2020-05-13 06:52:37 -07:00
Colin Edwards 55e2985026
Merge pull request #1944 from WizardCM/windows-rc-definition
CMake: Build Windows modules with file descriptors
2020-04-18 18:27:22 -05:00
Richard Stanway 54c5ac250f libobs-d3d11: Log device PCI IDs
This will help identify devices sharing the same names (eg "Intel HD
Graphics") for potentially adding to the blacklists should they have
issues.
2020-03-23 20:54:38 +01:00
jp9000 8ecfb405ce Revert "win-capture, libobs: Show names of displays in Display Capture"
This reverts commit 9931f22ff4.
2020-03-19 06:43:57 -07:00
jp9000 b31c166814 Revert "graphics: libobs-d3d11: Use DXGI_SWAP_EFFECT_FLIP_DISCARD on Windows 10"
This reverts commit 4da73445c3.

This is being reverted because apparently it causes flickering displays
for some people.  Bad drivers or something?  Not sure.  Very annoying.
2020-03-11 09:35:47 -07:00
Matt Gajownik 9931f22ff4 win-capture, libobs: Show names of displays in Display Capture 2020-03-09 11:13:59 +11:00
brittneysclark b8754f89fb libobs-d3d11: Enable NV12 for Intel on newer platforms
Check Intel Device IDs and only disable NV12 on legacy Intel GPUs. NV12
copy times on new platforms (ICL+) is minimal.
2020-02-26 05:49:13 -08:00
jpark37 f27f858ab3 libobs: Support device loss registration
Complex external systems using the D3D11 device may need to perform
their own device loss handling, the upcoming Windows Graphics Capture
support for example.
2020-02-22 21:02:33 -08:00
jpark37 ed91c4e3bc libobs-d3d11: Don't allow volume render targets
Unlikely to be necessary. Disable for simplicity.
2020-01-01 12:40:03 -08:00
Jim 4df9ce0cdf
Merge pull request #2251 from jpark37/lut-volume-texture
Use volume textures for LUT filter
2019-12-29 11:04:20 -08:00
jpark37 b5b6f24d5b libobs-d3d11: Increase the frame queue capacity
Sometimes Present stalls are seen when multiple swap chains are active.
This seems to fix that.
2019-12-19 10:08:21 -08:00
jpark37 8f6984e345 libobs: Add support for volume textures
Also fix some mip calculations along the way.
2019-12-15 14:38:26 -08:00
Jim fa5454d1b8
Merge pull request #2124 from notr1ch/pci-device-ids
Use PCI database IDs instead of string matching for devices
2019-11-22 23:15:55 -08:00
jpark37 1e2542ad6f libobs-d3d11: Fix null input layout rebuild
Don't build input layout without VS inputs. Matches creation logic.
2019-10-17 09:24:13 -07:00
Jim 3e01fdf3e5
Merge pull request #2116 from jpark37/begin-frame
libobs: Add gs_begin_frame for duplicators
2019-10-15 22:23:34 -07:00
Jim 3ccc63c14b
Merge pull request #2090 from jpark37/dxgi-refresh-rate
Log display refresh rates, and monitor names on D3D11
2019-10-15 10:04:49 -07:00
Jim 65e0fee6d0
Merge pull request #2089 from jpark37/dxgi-driver-version
libobs-d3d11: Add GPU driver version to log
2019-10-15 10:03:44 -07:00
Matt Gajownik 51be039cf8 CMake: Build Windows modules with file descriptors 2019-10-15 21:34:12 +11:00
Richard Stanway 323638e704 libobs-d3d11: Use vendor ID instead of string match 2019-10-14 23:06:33 +02:00
Jim 6b08c064f6
Merge pull request #2066 from jpark37/feature-level-baseline
Use D3D_FEATURE_LEVEL_10_0 as baseline
2019-10-12 20:55:33 -07:00
Jim 09c7ec487b
Merge pull request #2064 from jpark37/bgra-swap-chain
D3D swap chain enhancements
2019-10-12 20:54:33 -07:00
jp9000 dd48a99f03 libobs-d3d11: Fix code styling 2019-10-11 17:40:50 -07:00
jp9000 0f75f963ad libobs-d3d11: Fix calling convention of loaded func
Because this did not have WINAPI (stdcall) specified as the calling
convention on the gdi32 export, caused a crash due to stack corruption
on the 32bit version of OBS.
2019-10-11 17:21:11 -07:00
jpark37 ade65df2aa libobs: Add gs_begin_frame for duplicators
We really shouldn't be resetting duplicator state as part of gs_flush.
gs_begin_scene is not ideal because it is called twice per frame, and
only after duplicators have been ticked. Even though it makes no
user-facing difference, it makes more logical sense to reset at the top
of the frame than the bottom.
2019-10-10 21:06:01 -07:00
Jim 29ca28418f
Merge pull request #2115 from jpark37/duplicator-ref-count
Fix duplicator ref count
2019-10-10 21:01:16 -07:00
jpark37 471d752d75 libobs-d3d11: Use unordered_map for duplicator collection
Not in love with STL, but lets at least use the semantically-correct
collection. It's also a shame this is a global variable with gross
pre-main allocations, but attaching it to the device instance would
break the interface.
2019-10-10 19:29:15 -07:00
jp9000 b7d094a532 libobs-d3d11: Don't set GPU priority on Intel adapters 2019-10-10 03:03:38 -07:00
jp9000 ec769ef008 libobs-d3d11: Set maximum GPU priority
(This commit also modifies the UI)

This solves the issue where OBS would be deprioritized by Windows over
fullscreen games, causing OBS to lag out whereas the games would still
run fine.
2019-10-10 00:51:47 -07:00
jpark37 84d0fdc576 libobs-d3d11: Disable NV12 format support for WARP
Speculative fix. Don't have easy ability to reproduce this locally.
2019-10-06 20:30:49 -07:00
jpark37 8d36685599 libobs-d3d11: Add GPU driver version to log
DX version string is not the nicest, but no need for IHV library.
2019-10-05 15:03:23 -07:00
jpark37 4b0826cf5d libobs-d3d11: Log monitor names 2019-10-01 20:00:43 -07:00
jpark37 7fd831e705 libobs-d3d11: Log display refresh rates 2019-09-29 16:24:03 -07:00
jpark37 49b32e5e17 libobs-d3d11: Remove "support" for feature level 9.3
Feature Level 9.3 appears to never have actually worked because shaders
are compiled as straight 4_0 instead of 4_0_level_9_3. That being the
case, baseline against 10_0 instead.
2019-09-08 22:41:17 -07:00
jpark37 4da73445c3 graphics: libobs-d3d11: Use DXGI_SWAP_EFFECT_FLIP_DISCARD on Windows 10
This is supposed to eliminate a copy by DWM with extra benefits for
borderless fullsceen, which should help the fullscreen projector.
2019-09-06 19:39:42 -07:00
Jim 997698750e
Merge pull request #2051 from jpark37/d3d11-const-ref
Minor D3D11 cleanup
2019-08-31 21:15:25 -07:00
jp9000 bf41fd5a6b libobs: Add graphics API to get graphics object pointer 2019-08-29 12:43:10 -07:00
jpark37 f8572813b1 libobs-d3d11: Print feature level as %x for readability 2019-08-28 21:11:48 -07:00
jpark37 fe02a8286e libobs-d3d11: Consistent exception catch parameters
Fixed missing references, and stray usages of const references instead
of reference to const types. Apply const correctly where applicable.
2019-08-28 21:10:51 -07:00
Jim ce51fa092c
Merge pull request #1992 from Xaymar/patch-tidy-up-1
Fix various clang-tidy and CppCheck warnings.
2019-08-17 08:16:46 -07:00
jpark37 06e01a00ab libobs-d3d11: Disable NV12 usage for Intel
NV12 GPU copies to staging textures for CPU read take a ridiculously
long time on my integrated Intel GPU. Using R8/R8G8 instead seems to be
a huge speed-up.

Intel HD Graphics 530, D3D11 query timings, SetStablePowerState

NV12: ~3268 us (minimum of wild timings)
R8/R8G8: ~781 us (most frequently occurring timing)
2019-08-15 23:02:21 -07:00
jpark37 0e12d8189c libobs: Add GPU timestamp query support
This change only wraps the functionality. I have rough code to exercise
the the query functionality, but that part is not really clean enough to
submit.
2019-07-27 13:31:07 -07:00
Michael Fabian 'Xaymar' Dirks 1154c01266 libobs-d3d11: Catch be reference 2019-07-24 18:26:43 +02:00
Jim 84369f60e4
Merge pull request #1946 from jpark37/ternary-type-conversion
libobs-d3d11: Unnecessary type conversions
2019-07-01 02:37:51 -07:00
Richard Stanway 7f1f97a61f libobs-d3d11: Set texture using initializer list 2019-06-29 01:28:16 +02:00
jpark37 8c4d98195f libobs-d3d11: Unnecessary type conversions
Use raw pointer on both sides of ternary test result to remove
conversions.
2019-06-27 08:55:26 -05:00
Jim c938ea712b
Merge pull request #1935 from obsproject/clang-format
Apply clang-format to the project
2019-06-24 19:41:51 -07:00
Richard Stanway 80e9bb4ec7
libobs-d3d11: Fix missing vertex buffer clear in NV12 check 2019-06-25 00:51:01 +02:00
jp9000 f53df7da64 clang-format: Apply formatting
Code submissions have continually suffered from formatting
inconsistencies that constantly have to be addressed.  Using
clang-format simplifies this by making code formatting more consistent,
and allows automation of the code formatting so that maintainers can
focus more on the code itself instead of code formatting.
2019-06-23 23:49:10 -07:00
James Park aa22b61e3e libobs: Full-screen triangle format conversions
The cache coherency of rasterization for full-screen passes is better
using an oversized triangle that is clipped rather than two triangles.
Traversal order of rasterization is GPU-specific, but will almost
certainly be better using an undivided primitive.

A smaller benefit is that quads along the diagonal are not evaluated
multiple times, but that's minor in comparison.

Redo format shaders to bypass vertex buffer, and input layout. Add
global shader bool "obs_glsl_compile" to make API-specific decisions,
i.e. handle upside-down UVs. gl_ortho is not needed for format
conversion because the vertex shader does not use ViewProj anymore.

This can be applied to more situations, but start small first.

Testbed full screen passes, Intel HD Graphics 530:
RGBA -> UYVX: 467 -> 439 us, ~6% savings
UYVX -> uv: 295 -> 239 us, ~19% savings
2019-06-18 22:29:07 -07:00
James Park bbef13166b libobs-d3d11: Clean up device_projection_pop
Simplify STL usage as requested by function comment.
2019-06-08 09:52:20 -07:00
James Park 6ac21c4bc5 libobs-d3d11: Bad indices in log output
Fix bad logging for LogAdapterMonitors and LogD3DAdapters. Update
EnumD3DAdapters for consistency.
2019-05-22 23:06:00 -07:00
James Park ba21fb947e libobs: Fix various alpha issues
There are cases where alpha is multiplied unnecessarily. This change
attempts to use premultiplied alpha blending for composition.

To keep this change simple, The filter chain will continue to use
straight alpha. Otherwise, every source would need to modified to output
premultiplied, and every filter modified for premultiplied input.

"DrawAlphaDivide" shader techniques have been added to convert from
premultiplied alpha to straight alpha for final output. "DrawMatrix"
techniques ignore alpha, so they do not appear to need changing.

One remaining issue is that scale effects are set up here to use the
same shader logic for both scale filters (straight alpha - incorrectly),
and output composition (premultiplied alpha - correctly). A fix could be
made to add additional shaders for straight alpha, but the "real" fix
may be to eliminate the straight alpha path at some point.

For graphics, SrcBlendAlpha and DestBlendAlpha were both ONE, and could
combine together to form alpha values greater than one. This is not as
noticeable of a problem for UNORM targets because the channels are
clamped, but it will likely become a problem in more situations if FLOAT
targets are used.

This change switches DestBlendAlpha to INVSRCALPHA. The blending
behavior of stacked transparents is preserved without overflowing the
alpha channel.

obs-transitions: Use premultiplied alpha blend, and simplify shaders
because both inputs and outputs use premultiplied alpha now.

Fixes https://obsproject.com/mantis/view.php?id=1108
2019-05-08 20:26:52 -07:00
jp9000 f109d1c2bf Revert "libobs: libobs-d3d11: obs-filters: No excess alpha"
This reverts commit d91bd327d7, which
broke alpha with sources, scenes, and filter, causing them all to become
opaque unintentionally.
2019-04-25 08:36:41 -07:00
Jim f1399b6d18
Merge pull request #1765 from jpark37/blend-alpha
libobs: libobs-d3d11: Fix blend alpha overflow
2019-04-14 00:22:20 -07:00
James Park 2996a6c06b libobs/graphics: Support debug markers
Add support for debug markers via D3DPERF API and KHR_debug. This makes
it easier to understand RenderDoc captures.

D3DPERF is preferred to ID3DUserDefinedAnnotation because it supports
colors. d3d9.lib is now linked in to support this.

This feature is disabled by default, and is controlled by
GS_USE_DEBUG_MARKERS.

From: obsproject/obs-studio#1799
2019-04-08 02:05:37 -07:00
James Park d91bd327d7 libobs: libobs-d3d11: obs-filters: No excess alpha
Currently SrcBlendAlpha and DestBlendAlpha are both ONE, and can
combine together to form two. This is not a noticeable problem for
UNORM targets because the channels are clamped, but it will likely
become a problem if FLOAT targets are more widely used.

This change switches DestBlendAlpha to INVSRCALPHA, and starts
backgrounds as opaque black instead of transparent black. The blending
behavior of stacked transparents is preserved without overflowing the
alpha channel.
2019-04-07 18:16:56 -07:00
jp9000 bb034308d4 libobs-d3d11: Log errors from HasBadNV12Output just in case 2019-03-11 13:42:47 -07:00
jp9000 4aed743a93 libobs-d3d11: Improve NV12 validity check for AMD
On some AMD systems, the test for bad NV12 output would come up negative
(output was good), but when recording/streaming, it would have bad
output.  While the test worked correctly with NVIDIA systems, it did not
work in these cases.  This was because we did not correctly reproduce
the exact conditions of green output because the textures used for the
test were not also keyed mutex shared textures.  This fixes that issue
and ensures the test works correctly in those other niche cases.
2019-03-11 13:42:47 -07:00
jp9000 52eb536b04 libobs-d3d11: Check for bad NV12 output on all devices
Just to be safe, check for bad output on all devices.
2019-03-04 15:40:53 -08:00
jp9000 b4c35fab75 libobs-d3d11: Perform actual test for NV12 driver bug
Performs a test on a texture to determine if NV12 textures are
functioning correctly.  Older NVIDIA drivers appear to have a bug where
they will output their UV channel data on to the Y channel when copying
from the GPU.  This test on startup determines whether that bug is
occurring, and if so, disables NV12 texture support.
2019-03-04 14:06:10 -08:00
jp9000 3607eb9b25 libobs-d3d11: Remove NV12 blacklist 2019-03-04 14:05:40 -08:00
jp9000 2f3cb1804e libobs-d3d11: Reset handle and re-lock if texture rebuilt
If a texture has to be rebuilt due to a driver reset and is a keyed
mutex shared texture, make sure to reacquire the shared handle and
acquire the lock.
2019-03-03 08:43:06 -08:00
jp9000 8f3ea18276 libobs-d3d11: Use discrete function to get shared handle
Allows us to reacquire the shared handle if the texture is rebuilt.
2019-03-03 08:41:23 -08:00
jp9000 492f50ee87 libobs-d3d11: Set acquired bool when texture acquired
This is used when the device needs to be rebuilt.  Ensures that the
texture doesn't get locked again if the texture is rebuilt.
2019-03-03 08:39:47 -08:00
jp9000 cea0a1e73a libobs-d3d11: Disable NV12 textures if NVENC unavailable
On NVIDIA devices, disable NV12 textures if NVENC unavailable just as a
safety precaution.
2019-02-26 12:09:00 -08:00
jp9000 ccd801b03e libobs-d3d11: Blacklist certain adapters from NV12
Some older adapters apparently can't handle NV12 properly.  Wonderful.
2019-02-26 08:37:55 -08:00
jp9000 28860411dd libobs-d3d11: Improve check for NV12 texture support
Checks to make sure that DXGI_FORMAT_NV12 is actually supported by the
GPU.
2019-02-25 23:02:54 -08:00
jp9000 925f72c8c3 libobs-d3d11: Fix rebuild of NV12 textures
When NV12 textures were added, driver crashes and their rebuild process
was not taken in to consideration.  This fixes that by adding explicit
NV12 rebuild functions.
2019-02-17 17:42:48 -08:00
jp9000 86f82c952a libobs-d3d11: Actually use paired NV12 member variable 2019-02-17 17:42:48 -08:00
jp9000 e09c63914e libobs-d3d11: Don't inline rebuild funcs
Inlining these functions is pretty pointless.
2019-02-17 17:42:48 -08:00
jp9000 93fc61fa82 libobs/graphics: Add NV12 texture support 2019-02-07 17:00:46 -08:00
jp9000 b64d7d71d0 libobs/graphics: Add texture sharing functions 2019-02-07 17:00:46 -08:00
jp9000 35dc89f5ca libobs-d3d11: Use mip levels are used in resource view 2018-09-28 16:37:48 -07:00
Alex Anderson af67086912 libobs: Add HLSL annotation parsing
Gives the ability to retrieve param annotations. Blocks wrapped in <>
following a parameter.

For example:
float slider < float max_value = 10.0; float min_value = 0.0; >;

These blocks are not for shading purposes but to help describe the
shader's gui as in the example above.

Adds graphics api functions for retrieving annotations:
size_t gs_param_get_num_annotations(const gs_eparam_t *param);

gs_eparam_t *gs_param_get_annotation_by_idx(const gs_eparam_t *param,
		size_t annotation);

gs_eparam_t *gs_param_get_annotation_by_name(const gs_eparam_t *param,
		const char *name);
2018-09-08 05:22:12 -07:00
SuslikV dbfcbac3e4 libobs-d3d11: Do not allow Alt+Enter interception
Prevents Alt-Enter from attempting to automatically fullscreen an OBS
graphics display.

Closes obsproject/obs-studio#1248
2018-04-20 22:34:22 -07:00
Wouter 65f81105f5 libobs-d3d11: Allow multiple display captures of same monitor
This commit fixes a bug that occurs on Windows 8+ when two or more
"Display Capture" sources are active that are configured to capture the
same monitor.  Only one display capture would show, while all subsequent
display captures would display nothing.

Closes jp9000/obs-studio#1142
2018-01-09 19:49:54 -08:00
jp9000 0d6204c8af Fix a number of MSVC warnings
Fixes a number of warnings with all modules
2017-12-05 13:53:44 -08:00
jp9000 c111fa68b8 libobs: Add vertex/index buffer "direct" flush functions
(Note: This commit also modifies libobs-d3d11 and libobs-opengl)

Allows the ability to flush data directly without having to use the
buffer's internal data.

Allows the caller to manage his/her own vertex/index buffer data if
desired, working around the design flaw of having to rely on a
vertex/index buffer's internal data.
2017-11-27 03:00:20 -08:00