snes9x/win32/CShaderParamDlg.h

40 lines
1.2 KiB
C++

/*****************************************************************************\
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"
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);
GLSLShader &shader;
HFONT hFont;
unsigned int avgCharWidth;
unsigned int avgCharHeight;
int scrollpos;
std::vector<GLSLParam> saved_parameters;
WNDPROC oldStaticProc;
public:
CShaderParamDlg(GLSLShader &shade);
virtual ~CShaderParamDlg();
bool show();
};