iwubcode
62fee2f3b6
VideoCommon: add loading cube maps from DDS files and loading it into our custom texture object. Custom texture object now has the concept of slices in addition to levels. Traditional custom textures have a single slice
2023-09-02 20:20:09 -05:00
Admiral H. Curtiss
a08792033a
Merge pull request #12103 from iwubcode/asset_load_system_time
...
VideoCommon: asset load time is now stored as a chrono system_clock time
2023-08-18 00:14:29 +02:00
JosJuice
86910f406e
VideoCommon: Fix std::filesystem::path encoding conversion
...
In std::string, you can store strings using any encoding, but in Dolphin
we have decided to use UTF-8. The problem is that if you convert between
std::string and std::filesystem::path using the built-in methods, the
standard library will make up its own assumption of what encoding you're
using in the std::string. On most OSes this is UTF-8, but on Windows
it's whatever the user's code page is.
What I believe is the C++ standard authors' intended solution to this is
to use std::u8string instead of std::string, but that's a big hassle to
move over to, because there's no convenient way to convert between
std::string and std::u8string. Instead, in Dolphin, we have added helper
functions that convert between std::string and std::filesystem::path in
the manner we want. You *always* have to use these when converting
between std::string and std::filesystem::path, otherwise we get these
kinds of encoding problems that we've been having with custom textures.
Fixes https://bugs.dolphin-emu.org/issues/13328 .
2023-08-16 09:56:56 +02:00
iwubcode
eeb73460ab
VideoCommon: asset load time is now stored as a chrono system_clock time, so that times can be fabricated in a future feature (without creating a file to do so)
2023-08-15 22:02:28 -05:00
iwubcode
79f202ea5c
VideoCommon: fix some compiler warnings for CustomAsset. FreeBSD compiler complained about a defaulted move constructor due to the mutex being implicitly deleted. Additionally, the const owning library deleted the copy constructor.
2023-07-16 19:45:55 -05:00
iwubcode
5740be15f9
VideoCommon: initialize load info variables
2023-07-16 12:56:03 -05:00
iwubcode
77511e8e7c
VideoCommon: add material asset. A material is similar to other graphics engines where it provides data to be used in conjunction with a shader asset to generate a runtime AbstractShader
2023-07-09 12:21:34 -05:00
iwubcode
6ea49c6746
VideoCommon: add a pixel shader asset
2023-06-30 01:32:53 -05:00
iwubcode
2dc24a9148
VideoCommon: move cached texture asset to 'CustomAsset' common code
2023-06-20 18:59:55 -05:00
iwubcode
3e27fc7c0b
VideoCommon: don't treat incorrect aspect ratio or sizes that aren't a multiple of native textures as an error
2023-06-12 21:19:29 -05:00
iwubcode
afa498fa2f
VideoCommon: update DirectFilesystemAssetLibrary to not throw exceptions when a file no longer exists
2023-06-08 22:20:52 -05:00
iwubcode
429b2eca8a
VideoCommon: add logging for loading texture assets
2023-06-08 19:48:45 -05:00
iwubcode
9d7ab47738
VideoCommon: add additional locks around asset access and usage to ensure thread safety
2023-06-05 16:19:46 -05:00
iwubcode
9b9dc6dc5d
VideoCommon: fix minor issue in C++ template
2023-06-03 12:47:12 -05:00
Admiral H. Curtiss
80bf175c48
Merge pull request #11879 from iwubcode/texture_data_load_nolevels
...
VideoCommon: avoid segfault when loading a PNG with no custom texture data levels
2023-06-03 19:35:48 +02:00
iwubcode
47c40d51df
VideoCommon: when loading a PNG with no custom texture data levels already, create a level, this avoids a potential segfault
2023-06-03 12:19:30 -05:00
iwubcode
58d383b30b
VideoCommon: prevent potential data issue when reloading Asset data that could happen due to the asset loading thread reloading data while another thread is working with it
2023-06-03 00:13:06 -05:00
iwubcode
c93940c6ee
VideoCommon: add multithreaded asset loader and define a texture asset
2023-06-02 17:31:31 -05:00
iwubcode
07307edd49
VideoCommon: add an asset library that loads directly from the filesystem
2023-06-02 14:49:22 -05:00
iwubcode
e028d2ead0
VideoCommon: move custom texture data to assets
2023-06-02 14:07:42 -05:00
iwubcode
b2c5a5485a
VideoCommon: add custom asset implementation and asset library that can load an asset
2023-06-01 19:57:57 -05:00