27#define APPNAME _T("Cylfrac")
31#define timerdelay 1000/FPS
52float _RGB(
float H,
float M1,
float M2)
54 if(
H < 0.0)
H += 360.0;
55 else if(
H > 360.0)
H -= 360.0;
56 if(
H < 60)
return M1 + (M2 - M1) *
H / 60.0;
57 if((
H >= 60 )&&(
H < 180))
return M2;
58 if((
H >= 180)&&(
H < 240))
return M1 + (M2 - M1)*(240 -
H) / 60.0;
63 float*
R,
float*
G,
float*
B)
66 if(
S <= 0.5) M2 =
S * (1 +
L);
67 else M2 =
S * (1 -
L) +
L;
75 *
R =
_RGB(
H + 120.0, M1, M2);
77 *
B =
_RGB(
H - 120.0, M1, M2);
106 angle += ticks * 0.01;
137 GLfloat lightpos[4] = {2.0f, 2.0f, -2.0f, 0.7f};
#define G(r, i, a, b, c, d)
LRESULT WINAPI ScreenSaverProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
void CALLBACK TimeProc(UINT uID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2)
void DrawCylinder(int n, float rota, float width)
void MyPixelFormat(HDC dc)
void HLStoRGB(float H, float L, float S, float *R, float *G, float *B)
float _RGB(float H, float M1, float M2)
void DrawScene(HWND hwnd, HDC dc, int ticks)
BOOL WINAPI RegisterDialogClasses(HANDLE hmodule)
BOOL WINAPI ScreenSaverConfigureDialog(HWND hWnd, UINT message, WPARAM wparam, LPARAM lparam)
DWORD WINAPI GetTickCount(VOID)
MMRESULT WINAPI timeKillEvent(UINT wID)
MMRESULT WINAPI timeSetEvent(UINT wDelay, UINT wResol, LPTIMECALLBACK lpFunc, DWORD_PTR dwUser, UINT wFlags)
GLAPI void GLAPIENTRY glTranslatef(GLfloat x, GLfloat y, GLfloat z)
GLAPI void GLAPIENTRY glEnable(GLenum cap)
GLAPI void GLAPIENTRY glPushMatrix(void)
GLAPI void GLAPIENTRY glLoadIdentity(void)
GLAPI void GLAPIENTRY glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
GLAPI void GLAPIENTRY glScalef(GLfloat x, GLfloat y, GLfloat z)
#define GL_COLOR_BUFFER_BIT
#define GL_COLOR_MATERIAL
GLAPI void GLAPIENTRY glPopMatrix(void)
#define GL_LINEAR_ATTENUATION
GLint GLint GLsizei GLsizei height
GLAPI void GLAPIENTRY glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
GLdouble GLdouble GLdouble r
GLAPI void GLAPIENTRY glLightfv(GLenum light, GLenum pname, const GLfloat *params)
GLAPI void GLAPIENTRY glColor3f(GLfloat red, GLfloat green, GLfloat blue)
GLint GLint GLsizei width
#define GL_DEPTH_BUFFER_BIT
GLAPI void GLAPIENTRY glMatrixMode(GLenum mode)
GLAPI void GLAPIENTRY glClear(GLbitfield mask)
TCHAR szTitle[MAX_LOADSTRING]
static UINT WPARAM wparam
static UINT WPARAM LPARAM lparam
static float(__cdecl *square_half_float)(float x
static HGLRC(WINAPI *pwglCreateContextAttribsARB)(HDC hDC
LRESULT WINAPI DefScreenSaverProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
static PIXELFORMATDESCRIPTOR pfd
BOOL WINAPI wglDeleteContext(HGLRC hglrc)
HGLRC WINAPI wglCreateContext(HDC hdc)
BOOL WINAPI wglMakeCurrent(HDC hdc, HGLRC hglrc)
int WINAPI ChoosePixelFormat(_In_ HDC hdc, _In_ const PIXELFORMATDESCRIPTOR *ppfd)
BOOL WINAPI SetPixelFormat(_In_ HDC, _In_ int, _In_ const PIXELFORMATDESCRIPTOR *)
#define PFD_SUPPORT_OPENGL
BOOL WINAPI SwapBuffers(HDC)
#define PFD_DRAW_TO_WINDOW
BOOL WINAPI DeleteDC(_In_ HDC)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
__analysis_noreturn void WINAPI PostQuitMessage(_In_ int)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
int WINAPI ShowCursor(_In_ BOOL)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)