mirror of
https://github.com/BanjoRecomp/BanjoRecomp
synced 2026-05-23 22:45:12 -04:00
d26d18b373
* Added recompui::IconButton * Remove zelda themed input mapping visualization * update toggle * grayscale overlay colors * recompui::theme namespace + border constants * added ui_binding_button element * Initial support for multiple controllers. (#3) * Support for multiple controllers. * Fix default bindings. * Backwards compatibility with controls from previous version. * WIP code driven input mapping and player assignment * button press anims & temp reassignment state when opening assignment modal * set base opacity for disable state getting re-enabled * generic PlayerCard for both main Controls and assignment modal * wip ui_select recompui component * Add Input Profiles. (#4) * Add Input Profiles. * Add capability of setting custom profiles. * Remove leftover early return. * button sizes and annotation update * flex wrap and context root being assets * controls page multi vs single views * ability to reparent elements * ability to rotate elements * added functional caret to Select component * smaller edit profile button * select fixes and player profile assignment * pointer events property support and apply ptr events None to select arrow svg * init mp kb mappings to be unmapped * wire up selected profile's bindings * reimplement binding system in new menu * clear and reset input bindings implemented * remove deprecated controls panel * changes up to swapping to recompfrontend library * switch ui/input to be using recompfrontend library (unfinished) * register main font with recompui * Changes for recompui built in default scss * launcher + custom background * update modern runtime for recompui * Update N64ModernRuntime for recompui config changes * Added RecordSpinner icon * Added PlusKeyboard icon * remove sass and rml * single player + theme update * Delete Rmlui and lunasvg from being dependencies. * Update recomp frontend commit. * Remove lunasvg and rmlui submodules. * Update recomp frontend. * Move findfreetype. * Remove freetype windows binaries. * More updates. * Update frontend. * It builds. * Update frontend. * Update runtime and frontend. * Update frontend and RT64. * Get rid of SDL2 path from recomp frontend. * Update runtime and frontend and fix link order to fix Linux building * Update frontend and remove gyro and mouse sensitivity options * Update frontend to fix open menu button on controllers --------- Co-authored-by: thecozies <79979276+thecozies@users.noreply.github.com> Co-authored-by: Mr-Wiseguy <mrwiseguyromhacking@gmail.com>
63 lines
2.4 KiB
C++
63 lines
2.4 KiB
C++
#ifndef __BANJO_RENDER_H__
|
|
#define __BANJO_RENDER_H__
|
|
|
|
#include <unordered_set>
|
|
#include <filesystem>
|
|
|
|
#include "common/rt64_user_configuration.h"
|
|
#include "ultramodern/renderer_context.hpp"
|
|
#include "librecomp/config.hpp"
|
|
#include "librecomp/mods.hpp"
|
|
|
|
namespace RT64 {
|
|
struct Application;
|
|
}
|
|
|
|
namespace banjo {
|
|
namespace renderer {
|
|
inline const std::string special_option_texture_pack_enabled = "_recomp_texture_pack_enabled";
|
|
|
|
class RT64Context final : public ultramodern::renderer::RendererContext {
|
|
public:
|
|
~RT64Context() override;
|
|
RT64Context(uint8_t *rdram, ultramodern::renderer::WindowHandle window_handle, bool developer_mode);
|
|
|
|
bool valid() override { return static_cast<bool>(app); }
|
|
|
|
bool update_config(const ultramodern::renderer::GraphicsConfig &old_config, const ultramodern::renderer::GraphicsConfig &new_config) override;
|
|
|
|
void enable_instant_present() override;
|
|
void send_dl(const OSTask *task) override;
|
|
void update_screen() override;
|
|
void shutdown() override;
|
|
uint32_t get_display_framerate() const override;
|
|
float get_resolution_scale() const override;
|
|
|
|
private:
|
|
std::unique_ptr<RT64::Application> app;
|
|
std::unordered_set<std::string> enabled_texture_packs;
|
|
std::unordered_set<std::string> secondary_disabled_texture_packs;
|
|
|
|
void check_texture_pack_actions();
|
|
};
|
|
|
|
std::unique_ptr<ultramodern::renderer::RendererContext> create_render_context(uint8_t *rdram, ultramodern::renderer::WindowHandle window_handle, bool developer_mode);
|
|
|
|
RT64::UserConfiguration::Antialiasing RT64MaxMSAA();
|
|
bool RT64SamplePositionsSupported();
|
|
bool RT64HighPrecisionFBEnabled();
|
|
|
|
void trigger_texture_pack_update();
|
|
void enable_texture_pack(const recomp::mods::ModContext& context, const recomp::mods::ModHandle& mod);
|
|
void disable_texture_pack(const recomp::mods::ModHandle& mod);
|
|
void secondary_enable_texture_pack(const std::string& mod_id);
|
|
void secondary_disable_texture_pack(const std::string& mod_id);
|
|
|
|
// Texture pack enable option. Must be an enum with two options.
|
|
// The first option is treated as disabled and the second option is treated as enabled.
|
|
bool is_texture_pack_enable_config_option(const recomp::config::ConfigOption& option, bool show_errors);
|
|
}
|
|
}
|
|
|
|
#endif
|