summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/VertexManagerBase.cpp
AgeCommit message (Collapse)Author
2025-01-01Simplify `std::find` with `Common::Contains`mitaclaw
In NandPaths.cpp, the `std::initializer_list<char>` of illegal characters has been turned into a `char[]` (similar to the one in GameList.cpp). The reverse iteration in ResourcePack.cpp seemed to provide no benefits, and doing without it it seemed to have no ill effects.
2024-10-19Merge pull request #12712 from Dentomologist/remove_defined_out_codeTilka
Remove defined-out code
2024-10-15Merge pull request #13090 from mitaclaw/ranges-modernization-1-trivialJosJuice
Ranges Algorithms Modernization - Trivial
2024-10-12Cache normals in addition to binormals and tangentsPokechu22
Fixes LIT (https://bugs.dolphin-emu.org/issues/13635). The text does not include normals, but has lighting enabled. With the previous default of (0, 0, 0), lighting was always black (as dot(X, (0, 0, 0)) is always 0). It seems like the normal from the map in the background (0, 0, 1) is re-used. LIT also has the vertex color enabled while vertex color is not specified, the same as SMS's debug cubes; the default MissingColorValue GameINI value of solid white seems to work correctly in this case.
2024-10-10Modernize `std::binary_search` with rangesmitaclaw
In VolumeVerifier.cpp, constructing a `std::string_view` of the volume's GameID is unnecessary, as `std::`(`ranges::`)`binary_search` supports heterogeneous lookup. The usage in GameFile.cpp is a perfect example.
2024-06-01VideoCommon: pull texture sampler out of texture cache so that it can be ↵iwubcode
used in other places in the future
2024-04-18VideoCommon: Show the average projection to viewport ratio in statisticsJordan Woyak
window.
2024-04-15Remove defined-out codeDentomologist
2024-01-31VideoCommon/Statistics: Remove global system accessor from s_after_frame_eventLioncash
Instead, we make the event take a reference to the system and then pass it in when the event is triggered. This does introduce two other accessors, but these are much easier to refactor out over time, and without modification to the existing event interface.
2024-01-31Migrate SConfig::bWii to System.Admiral H. Curtiss
2024-01-27VideoCommon: refactor drawing into its own functioniwubcode
2024-01-26Merge pull request #12443 from iwubcode/custom_pipeline_action_material_cubemapMai
VideoCommon: update custom pipeline action to support a variety of texture samplers, support for materials, and more!
2024-01-04Core/SystemTimers: Refactor to class, move to System.Admiral H. Curtiss
2023-12-19VideoCommon: update custom pipeline action to support a variety of texture ↵iwubcode
samplers (2D, 2D array, and cube maps)
2023-12-18Merge pull request #12170 from Filoppi/custom_aspect_ratioAdmiral H. Curtiss
Add support for custom aspect ratios
2023-12-18Video: polish aspect ratio related code comments to make it clearerFiloppi
2023-12-12VideoCommon: prepare graphics mods for custom shader material dataiwubcode
2023-12-11VertexManagerBase: Resolve -Wsign-compare warningLioncash
2023-11-26VideoCommon: move xf state management to its own class, so changes can be ↵iwubcode
detected in places other than VertexShaderManager
2023-10-05VideoCommon: add custom pixel shader constants as a buffer of data to be ↵iwubcode
passed to all backends
2023-09-06VideoCommon: Expose the widescreen heuristic's standard and widescreen ratio ↵Jordan Woyak
values in onion config.
2023-09-05VertexManagerBase: Allow widecreen heuristic constants to be overriden by ↵OatmealDome
onion config
2023-08-20VideoCommon: add milliseconds elapsed time value to pixel shaders as a ↵iwubcode
uniform to be able to support animation effects in custom shaders
2023-08-20VideoCommon: add custom shader cache to VertexManagerBase, supporting custom ↵iwubcode
pixel shaders by replacing the existing pipeline with a modified one
2023-07-02VideoCommon: don't do pointer copies during graphics mod callback iterationiwubcode
2023-03-20VideoCommon:VertexManagerBase: Only calculate remaining indices onceRobin Kertels
Before, both of those were calculated 3 times due to the ASSERTs.
2023-02-09Lint fixesScott Mansell
2023-01-31Cleanup headersScott Mansell
2023-01-31Split out everying remaining from SwapScott Mansell
2023-01-31Wire up frame before/after eventsScott Mansell
2023-01-31Move GraphicsMod out of RenderBaseScott Mansell
2023-01-31Move BoundingBox out of RenderBaseScott Mansell
They were essentially just pass-though methods
2023-01-31Split AbstractGfx out of RendererScott Mansell
Almost all the virtual functions in Renderer are part of dolphin's "graphics api abstraction layer", which has slowly formed over the last decade or two. Most of the work was done previously with the introduction of the various "AbstractX" classes, associated with texture cache cleanups and implementation of newer graphics APIs (Direct3D 12, Vulkan, Metal). We are simply taking the last step and yeeting these functions out of Renderer. This "AbstractGfx" class is now completely agnostic of any details from the flipper/hollywood GPU we are emulating, though somewhat specialized. (Will not build, this commit only contains changes outside VideoBackends)
2023-01-26Merge pull request #11208 from TellowKrinkle/CPUCullPierre Bourdon
Cull vertices on the CPU
2023-01-25VideoCommon: Cull vertices on the CPUTellowKrinkle
2023-01-03VertexManagerBase: Move free space check to after the buffer is resetPokechu22
Fixes incorrect logspam when the buffer needed to be reset on flushes (which we already were doing, but 52feed04dbf9d487138944ed834bd877620eef74 moved it to after the check was made). This is https://bugs.dolphin-emu.org/issues/10312. I also converted it to an assert, as if this does happen, things are going to render incorrectly, so we want to make it obvious.
2022-12-29VideoCommon: De-globalize GeometryShaderManager class.Admiral H. Curtiss
2022-12-28VideoCommon: De-globalize VertexShaderManager class.Admiral H. Curtiss
2022-12-27VideoCommon: De-globalize PixelShaderManager class.Admiral H. Curtiss
2022-10-22VideoCommon: Support hot reloading of VS expandTellowKrinkle
2022-10-22VideoCommon: Add vertex shader point and line expansionTellowKrinkle
2022-10-09Simplify saving CP statePokechu22
Rather than makring some parts of VertexLoaderManager dirty in some places and some in others, do it all in VideoState. Also, since CPState no longer contains pointers/non-CP data after d039b1bc0dfaba2a88036468b6d971bb1d7e463d, we can just use p.Do on it instead of manually saving each field.
2022-10-09Include tangent/binormal cache in savestatesPokechu22
This theoretically matters for RS2/RS3, although in practice these games reconfigure it each frame so it shouldn't matter for savestates.
2022-10-09VideoCommon: add structures to graphics mods to allow for future adding or ↵iwubcode
removing parameters with less code overhead
2022-07-13Merge pull request #10777 from tellowkrinkle/EFBFlushJMC47
VideoCommon: Remember to flush command buffers after multiple EFB copies
2022-07-06VideoCommon: Remember to flush command buffers after multiple EFB copiesTellowKrinkle
2022-06-27VideoCommon: trigger mod calls in TextureCacheBase (efb/xfb calls), ↵iwubcode
VertexManagerBase (draw calls), and VertexShaderManager (projection calls)
2022-05-25Common: Refactor PointerWrapDentomologist
2022-04-22VideoCommon: Handle emboss texgen with only a single normalPokechu22
Fixes a large number of effects in Rogue Squadron 2 and 3.
2022-04-22VertexLoader: Convert count register to remaining registerPokechu22
This more accurately represents what's going on, and also ends at 0 instead of 1, making some indexing operations easier. This also changes it so that position_matrix_index_cache actually starts from index 0 instead of index 1.