/*****************************************************************************\ Snes9x - Portable Super Nintendo Entertainment System (TM) emulator. This file is licensed under the Snes9x License. For further information, consult the LICENSE file in the root directory. \*****************************************************************************/ #pragma once #include "windows.h" #include "../shaders/glsl.h" #include typedef void(*APPLYCALLBACK) (); class CShaderParamDlg { private: static INT_PTR CALLBACK DlgShaderParams(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam); static INT_PTR CALLBACK WndProcContainerStatic(HWND hStatic, UINT msg, WPARAM wParam, LPARAM lParam); void createContent(HWND hDlg); void get_changed_parameters(HWND hDlg); void handle_up_down(HWND hStatic, int id, int change); void save_custom_shader(); void apply_changes(HWND hDlg); HFONT hFont; unsigned int avgCharWidth; unsigned int avgCharHeight; int scrollpos; std::vector& parameters; std::vector saved_parameters; std::function save_function; WNDPROC oldStaticProc; public: CShaderParamDlg(std::vector ¶meters, std::function save_function); virtual ~CShaderParamDlg(); bool show(); };