[ros-diffs] [ekohl] 31542: [FORMATTING] Fix indentation and move comments

ekohl at svn.reactos.org ekohl at svn.reactos.org
Tue Jan 1 23:15:11 CET 2008


Author: ekohl
Date: Wed Jan  2 01:15:10 2008
New Revision: 31542

URL: http://svn.reactos.org/svn/reactos?rev=31542&view=rev
Log:
[FORMATTING] Fix indentation and move comments

Modified:
    trunk/reactos/base/applications/screensavers/3dtext/3dtext.c

Modified: trunk/reactos/base/applications/screensavers/3dtext/3dtext.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/base/applications/screensavers/3dtext/3dtext.c?rev=31542&r1=31541&r2=31542&view=diff
==============================================================================
--- trunk/reactos/base/applications/screensavers/3dtext/3dtext.c (original)
+++ trunk/reactos/base/applications/screensavers/3dtext/3dtext.c Wed Jan  2 01:15:10 2008
@@ -18,416 +18,524 @@
  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
  */
 
-#include <windows.h>	// Header File For Windows
-#include <math.h>		// Header File For Windows Math Library
-#include <GL/gl.h>		// Header File For The OpenGL32 Library
-#include <GL/glu.h>		// Header File For The GLu32 Library
+#include <windows.h>
+#include <math.h>
+#include <GL/gl.h>
+#include <GL/glu.h>
 #include <tchar.h>
 
 #include "resource.h"
 #include "3dtext.h"
 
-static	HGLRC hRC;		// Permanent Rendering Context
-static	HDC hDC;		// Private GDI Device Context
-
-GLuint	base;			// Base Display List For The Font Set
-GLfloat	rot;			// Used To Rotate The Text
+static HGLRC hRC;		// Permanent Rendering Context
+static HDC hDC;		// Private GDI Device Context
+
+GLuint base;			// Base Display List For The Font Set
+GLfloat rot;			// Used To Rotate The Text
 
 #define APPNAME _T("3DText")
 
 HINSTANCE hInstance;
 BOOL fullscreen = FALSE;
 
-GLvoid BuildFont(GLvoid)								// Build Our Bitmap Font
-{
-	GLYPHMETRICSFLOAT	gmf[256];						// Address Buffer For Font Storage
-	HFONT	font;										// Windows Font ID
-
-	base = glGenLists(256);								// Storage For 256 Characters
-
-	font = CreateFont(	-12,							// Height Of Font
-						0,								// Width Of Font
-						0,								// Angle Of Escapement
-						0,								// Orientation Angle
-						FW_BOLD,						// Font Weight
-						FALSE,							// Italic
-						FALSE,							// Underline
-						FALSE,							// Strikeout
-						DEFAULT_CHARSET,				// Character Set Identifier
-						OUT_TT_PRECIS,					// Output Precision
-						CLIP_DEFAULT_PRECIS,			// Clipping Precision
-						ANTIALIASED_QUALITY,			// Output Quality
-						FF_DONTCARE|DEFAULT_PITCH,		// Family And Pitch
-						_T("Tahoma"));				// Font Name
-
-	SelectObject(hDC, font);							// Selects The Font We Created
-
-	wglUseFontOutlines(	hDC,							// Select The Current DC
-						0,								// Starting Character
-						255,							// Number Of Display Lists To Build
-						base,							// Starting Display Lists
-						0.0f,							// Deviation From The True Outlines
-						0.2f,							// Font Thickness In The Z Direction
-						WGL_FONT_POLYGONS,				// Use Polygons, Not Lines
-						gmf);							// Address Of Buffer To Recieve Data
-}
-
-GLvoid KillFont(GLvoid)									// Delete The Font
-{
-  glDeleteLists(base, 256);								// Delete All 256 Characters
-}
-
-GLvoid glPrint(LPTSTR text)								// Custom GL "Print" Routine
-{
-  if (text == NULL)										// If There's No Text
-    return;												// Do Nothing
-
-  glPushAttrib(GL_LIST_BIT);							// Pushes The Display List Bits
-  glListBase(base);										// Sets The Base Character to 32
-
-  glCallLists(_tcslen(text),
-#ifdef UNICODE 
-      GL_UNSIGNED_SHORT
+// Build Our Bitmap Font
+GLvoid BuildFont(GLvoid)
+{
+    // Address Buffer For Font Storage
+    GLYPHMETRICSFLOAT gmf[256];
+    // Windows Font Handle
+    HFONT font;
+
+    // Storage For 256 Characters
+    base = glGenLists(256);
+
+    font = CreateFont(-12,
+                      0,				// Width Of Font
+                      0,				// Angle Of Escapement
+                      0,				// Orientation Angle
+                      FW_BOLD,				// Font Weight
+                      FALSE,				// Italic
+                      FALSE,				// Underline
+                      FALSE,				// Strikeout
+                      DEFAULT_CHARSET,			// Character Set Identifier
+                      OUT_TT_PRECIS,			// Output Precision
+                      CLIP_DEFAULT_PRECIS,		// Clipping Precision
+                      ANTIALIASED_QUALITY,		// Output Quality
+                      FF_DONTCARE|DEFAULT_PITCH,	// Family And Pitch
+                      _T("Tahoma"));			// Font Name
+
+    // Selects The Font We Created
+    SelectObject(hDC, font);
+
+    wglUseFontOutlines(hDC,				// Select The Current DC
+                       0,				// Starting Character
+                       255,				// Number Of Display Lists To Build
+                       base,				// Starting Display Lists
+                       0.0f,				// Deviation From The True Outlines
+                       0.2f,				// Font Thickness In The Z Direction
+                       WGL_FONT_POLYGONS,		// Use Polygons, Not Lines
+                       gmf);				// Address Of Buffer To Recieve Data
+}
+
+// Delete The Font
+GLvoid KillFont(GLvoid)
+{
+    // Delete all 256 characters
+    glDeleteLists(base, 256);
+}
+
+// Custom GL "Print" Routine
+GLvoid glPrint(LPTSTR text)
+{
+    // If there's no text, do nothing
+    if (text == NULL)
+        return;
+
+    // Pushes The Display List Bits
+    glPushAttrib(GL_LIST_BIT);
+
+    // Sets The Base Character to 32
+    glListBase(base);
+
+    // Draws The Display List Text
+    glCallLists(_tcslen(text),
+#ifdef UNICODE
+                GL_UNSIGNED_SHORT,
 #else
-      GL_UNSIGNED_BYTE
+                GL_UNSIGNED_BYTE,
 #endif
-          , text); // Draws The Display List Text
-
-  glPopAttrib();										// Pops The Display List Bits
-}
-
-GLvoid InitGL(GLsizei Width, GLsizei Height)	// Will Be Called Right After The GL Window Is Created
-{
-	glClearColor(0.0f, 0.0f, 0.0f, 0.0f);		// Clear The Background Color To Black
-	glClearDepth(1.0);							// Enables Clearing Of The Depth Buffer
-	glDepthFunc(GL_LESS);						// The Type Of Depth Test To Do
-	glEnable(GL_DEPTH_TEST);					// Enables Depth Testing
-	glShadeModel(GL_SMOOTH);					// Enables Smooth Color Shading
-
-	glMatrixMode(GL_PROJECTION);				// Select The Projection Matrix
-	glLoadIdentity();							// Reset The Projection Matrix
-
-	// Calculate The Aspect Ratio Of The Window
-	gluPerspective(45.0f,(GLfloat)Width/(GLfloat)Height,0.1f,100.0f);
-
-	glMatrixMode(GL_MODELVIEW);					// Select The Modelview Matrix
-
-	BuildFont();								// Build The Font
-	glEnable(GL_LIGHT0);						// Enable Default Light (Quick And Dirty)
-	glEnable(GL_LIGHTING);						// Enable Lighting
-	glEnable(GL_COLOR_MATERIAL);				// Enable Coloring Of Material
-}
-
-GLvoid ReSizeGLScene(GLsizei Width, GLsizei Height)	// Handles Window Resizing
-{
-	if (Height==0)									// Is Window Too Small (Divide By Zero Error)
-		Height=1;									// If So Make It One Pixel Tall
-
-	// Reset The Current Viewport And Perspective Transformation
-	glViewport(0, 0, Width, Height);
-
-	glMatrixMode(GL_PROJECTION);					// Select The Projection Matrix
-	glLoadIdentity();								// Reset The Projection Matrix
-
-	// Calculate The Aspect Ratio Of The Window
-	gluPerspective(45.0f,(GLfloat)Width/(GLfloat)Height,0.1f,100.0f);
-	glMatrixMode(GL_MODELVIEW);						// Select The Modelview Matrix
-}
-
-GLvoid DrawGLScene(GLvoid)									// Handles Rendering
-{
-	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);		// Clear The Screen And The Depth Buffer
-	glLoadIdentity();										// Reset The View
-	glTranslatef(0.0f,0.0f,-10.0f);							// Move One Unit Into The Screen
-	glRotatef(rot,1.0f,0.0f,0.0f);							// Rotate On The X Axis
-	glRotatef(rot*1.2f,0.0f,1.0f,0.0f);						// Rotate On The Y Axis
-	glRotatef(rot*1.4f,0.0f,0.0f,1.0f);						// Rotate On The Z Axis
-	glTranslatef(-3.5f,0.0f,0.0f);							// Move To The Left Before Drawing
-	// Pulsing Colors Based On The Rotation
-	glColor3f(
-		(1.0f*(cos(rot/20.0f))),
-		(1.0f*(sin(rot/25.0f))),
-		(1.0f-0.5f*(cos(rot/17.0f))));
-	glPrint(m_Text);							// Print GL Text To The Screen
-	glColor3f(0.0f,0.0f,1.0f);								// Make The Text Blue
-	rot+=0.1f;												// Increase The Rotation Variable
-}
-
-LRESULT CALLBACK WndProc(	HWND	hWnd,
-							UINT	message,
-							WPARAM	wParam,
-							LPARAM	lParam)
-{
-	static POINT ptLast;
-	static POINT ptCursor;
-	static BOOL  fFirstTime = TRUE;
-	RECT	Screen;							// Used Later On To Get The Size Of The Window
-	GLuint	PixelFormat;					// Pixel Format Storage
-	static	PIXELFORMATDESCRIPTOR pfd=		// Pixel Format Descriptor
-	{
-		sizeof(PIXELFORMATDESCRIPTOR),		// Size Of This Pixel Format Descriptor
-		1,									// Version Number (?)
-		PFD_DRAW_TO_WINDOW |				// Format Must Support Window
-		PFD_SUPPORT_OPENGL |				// Format Must Support OpenGL
-		PFD_DOUBLEBUFFER,					// Must Support Double Buffering
-		PFD_TYPE_RGBA,						// Request An RGBA Format
-		16,									// Select A 16Bit Color Depth
-		0, 0, 0, 0, 0, 0,					// Color Bits Ignored (?)
-		0,									// No Alpha Buffer
-		0,									// Shift Bit Ignored (?)
-		0,									// No Accumulation Buffer
-		0, 0, 0, 0,							// Accumulation Bits Ignored (?)
-		16,									// 16Bit Z-Buffer (Depth Buffer)  
-		0,									// No Stencil Buffer
-		0,									// No Auxiliary Buffer (?)
-		PFD_MAIN_PLANE,						// Main Drawing Layer
-		0,									// Reserved (?)
-		0, 0, 0								// Layer Masks Ignored (?)
-	};
-
-	switch (message)						// Tells Windows We Want To Check The Message
-	{
-		case WM_CREATE:										// Window Creation
-			hDC = GetDC(hWnd);								// Gets A Device Context For The Window
-			PixelFormat = ChoosePixelFormat(hDC, &pfd);		// Finds The Closest Match To The Pixel Format We Set Above
-
-			if (!PixelFormat)								// No Matching Pixel Format?
-			{
-				MessageBox(0,_TEXT("Can't Find A Suitable PixelFormat."),_TEXT("Error"),MB_OK|MB_ICONERROR);
-				PostQuitMessage(0);			// This Sends A 'Message' Telling The Program To Quit
-				break;						// Prevents The Rest Of The Code From Running
-			}
-
-			if(!SetPixelFormat(hDC,PixelFormat,&pfd))		// Can We Set The Pixel Mode?
-			{
-				MessageBox(0,_TEXT("Can't Set The PixelFormat."),_TEXT("Error"),MB_OK|MB_ICONERROR);
-				PostQuitMessage(0);			// This Sends A 'Message' Telling The Program To Quit
-				break;						// Prevents The Rest Of The Code From Running
-			}
-
-			hRC = wglCreateContext(hDC);					// Grab A Rendering Context
-			if(!hRC)										// Did We Get One?
-			{
-				MessageBox(0,_TEXT("Can't Create A GL Rendering Context."),_TEXT("Error"),MB_OK|MB_ICONERROR);
-				PostQuitMessage(0);			// This Sends A 'Message' Telling The Program To Quit
-				break;						// Prevents The Rest Of The Code From Running
-			}
-
-			if(!wglMakeCurrent(hDC, hRC))					// Can We Make The RC Active?
-			{
-				MessageBox(0,_TEXT("Can't Activate GLRC."),_TEXT("Error"),MB_OK|MB_ICONERROR);
-				PostQuitMessage(0);			// This Sends A 'Message' Telling The Program To Quit
-				break;						// Prevents The Rest Of The Code From Running
-			}
-
-			GetClientRect(hWnd, &Screen);					// Grab Screen Info For The Current Window
-			InitGL(Screen.right, Screen.bottom);			// Initialize The GL Screen Using Screen Info
-			break;
-
-		case WM_DESTROY:									// Windows Being Destroyed
-		case WM_CLOSE:										// Windows Being Closed
-			{
-				ChangeDisplaySettings(NULL, 0);					// Disable Fullscreen Mode
-				KillFont();										// Deletes The Font Display List
-
-				wglMakeCurrent(hDC,NULL);						// Make The DC Current
-				wglDeleteContext(hRC);							// Kill The RC
-				ReleaseDC(hWnd,hDC);							// Free The DC
-
-				PostQuitMessage(0);								// Quit The Program
-			}
-			break;
-		case WM_PAINT:
-		{
-			DrawGLScene();
-			SwapBuffers(hDC);
-			break;
-		}
-		case WM_NOTIFY:
-		case WM_SYSKEYDOWN:
-			PostMessage(hWnd, WM_CLOSE, 0, 0);
-			break;
-		case WM_LBUTTONDOWN:
-		case WM_LBUTTONUP:
-		case WM_RBUTTONDOWN:
-		case WM_RBUTTONUP:
-		case WM_MBUTTONDOWN:
-		case WM_MBUTTONUP:
-		case WM_MOUSEMOVE:
-			{
-				// If we've got a parent then we must be a preview
-				if(GetParent(hWnd) != 0)
-					return 0;
-
-				if(fFirstTime)
-				{
-					GetCursorPos(&ptLast);
-					fFirstTime = FALSE;
-				}
-
-				GetCursorPos(&ptCursor);
-
-				// if the mouse has moved more than 3 pixels then exit
-				if(abs(ptCursor.x - ptLast.x) >= 3 || abs(ptCursor.y - ptLast.y) >= 3)
-					PostMessage(hWnd, WM_CLOSE, 0, 0);
-
-				ptLast = ptCursor;
-
-				return 0;
-			}
-		case WM_SIZE:										// Resizing The Screen
-			ReSizeGLScene(LOWORD(lParam),HIWORD(lParam));	// Resize To The New Window Size
-			break;
-
-		default:
-			return (DefWindowProc(hWnd, message, wParam, lParam));	// Pass Windows Messages
-	}
-return (0);
-}
-
-void InitSaver(HWND hwndParent)
-{
-	WNDCLASS wc;
-	ZeroMemory(&wc, sizeof(wc));
-	wc.style            = CS_HREDRAW | CS_VREDRAW;
-	wc.lpfnWndProc      = WndProc;
-	wc.lpszClassName    = APPNAME;
-	RegisterClass(&wc);
-
-	if (hwndParent != 0)
-	{
-		RECT rect;
-		GetClientRect(hwndParent, &rect);
-		CreateWindow(APPNAME, APPNAME,
-		             WS_VISIBLE | WS_CHILD,
-		             0, 0,
-		             rect.right,
-		             rect.bottom,
-		             hwndParent, 0,
-		             hInstance, NULL);
-		fullscreen = FALSE;
-	} else {
-		HWND hwnd;
-		hwnd = CreateWindow(APPNAME, APPNAME,
-		                    WS_VISIBLE | WS_POPUP | WS_EX_TOPMOST,
-		                    0, 0,
-		                    GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),
-		                    HWND_DESKTOP, 0,
-		                    hInstance, NULL);
-		ShowWindow(hwnd, SW_SHOWMAXIMIZED);
-		ShowCursor(FALSE);
-		fullscreen = TRUE;
-	}
+                text);
+
+    // Pops The Display List Bits
+    glPopAttrib();
+}
+
+// Will Be Called Right After The GL Window Is Created
+GLvoid InitGL(GLsizei Width, GLsizei Height)
+{
+    // Clear The Background Color To Black
+    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
+
+    // Enables Clearing Of The Depth Buffer
+    glClearDepth(1.0);
+
+    // The Type Of Depth Test To Do
+    glDepthFunc(GL_LESS);
+
+    // Enables Depth Testing
+    glEnable(GL_DEPTH_TEST);
+
+    // Enables Smooth Color Shading
+    glShadeModel(GL_SMOOTH);
+
+    // Select The Projection Matrix
+    glMatrixMode(GL_PROJECTION);
+
+    // Reset The Projection Matrix
+    glLoadIdentity();
+
+    // Calculate The Aspect Ratio Of The Window
+    gluPerspective(45.0f, (GLfloat)Width / (GLfloat)Height, 0.1f, 100.0f);
+
+    // Select The Modelview Matrix
+    glMatrixMode(GL_MODELVIEW);
+
+    // Build The Font
+    BuildFont();
+
+    // Enable Default Light (Quick And Dirty)
+    glEnable(GL_LIGHT0);
+
+    // Enable Lighting
+    glEnable(GL_LIGHTING);
+
+    // Enable Coloring Of Material
+    glEnable(GL_COLOR_MATERIAL);
+}
+
+// Handles Window Resizing
+GLvoid ReSizeGLScene(GLsizei Width, GLsizei Height)	
+{
+    // Is Window Too Small (Divide By Zero Error)
+    if (Height == 0)
+    {
+        // If So Make It One Pixel Tall
+        Height = 1;
+    }
+
+    // Reset The Current Viewport And Perspective Transformation
+    glViewport(0, 0, Width, Height);
+
+    // Select The Projection Matrix
+    glMatrixMode(GL_PROJECTION);
+
+    // Reset The Projection Matrix
+    glLoadIdentity();
+
+    // Calculate The Aspect Ratio Of The Window
+    gluPerspective(45.0f, (GLfloat)Width / (GLfloat)Height, 0.1f, 100.0f);
+
+    // Select The Modelview Matrix
+    glMatrixMode(GL_MODELVIEW);
+}
+
+// Handles Rendering
+GLvoid DrawGLScene(GLvoid)
+{
+    // Clear The Screen And The Depth Buffer
+    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+    // Reset The View
+    glLoadIdentity();
+
+    // Move One Unit Into The Screen
+    glTranslatef(0.0f, 0.0f, -10.0f);
+
+    // Rotate On The X Axis
+    glRotatef(rot, 1.0f, 0.0f, 0.0f);
+
+    // Rotate On The Y Axis
+    glRotatef(rot * 1.2f, 0.0f, 1.0f, 0.0f);
+
+    // Rotate On The Z Axis
+    glRotatef(rot * 1.4f, 0.0f, 0.0f, 1.0f);
+
+    // Move to the Left and Down before drawing
+    glTranslatef(-3.5f, 0.0f, 0.0f);
+
+    // Pulsing Colors Based On The Rotation
+    glColor3f((1.0f * (cos(rot / 20.0f))),
+              (1.0f * (sin(rot / 25.0f))),
+              (1.0f - 0.5f * (cos(rot / 17.0f))));
+
+    // Print GL Text To The Screen
+    glPrint(m_Text);
+
+    // Make The Text Blue
+    glColor3f(0.0f, 0.0f, 1.0f);
+
+    // Increase The Rotation Variable
+    rot += 0.1f;
+}
+
+LRESULT CALLBACK
+WndProc(HWND hWnd,
+        UINT message,
+        WPARAM wParam,
+        LPARAM lParam)
+{
+    static POINT ptLast;
+    static POINT ptCursor;
+    static BOOL  fFirstTime = TRUE;
+    RECT Screen;							// Used Later On To Get The Size Of The Window
+    GLuint PixelFormat;					// Pixel Format Storage
+    static PIXELFORMATDESCRIPTOR pfd=		// Pixel Format Descriptor
+    {
+        sizeof(PIXELFORMATDESCRIPTOR),		// Size Of This Pixel Format Descriptor
+        1,									// Version Number (?)
+        PFD_DRAW_TO_WINDOW |				// Format Must Support Window
+        PFD_SUPPORT_OPENGL |				// Format Must Support OpenGL
+        PFD_DOUBLEBUFFER,					// Must Support Double Buffering
+        PFD_TYPE_RGBA,						// Request An RGBA Format
+        16,									// Select A 16Bit Color Depth
+        0, 0, 0, 0, 0, 0,					// Color Bits Ignored (?)
+        0,									// No Alpha Buffer
+        0,									// Shift Bit Ignored (?)
+        0,									// No Accumulation Buffer
+        0, 0, 0, 0,							// Accumulation Bits Ignored (?)
+        16,									// 16Bit Z-Buffer (Depth Buffer)  
+        0,									// No Stencil Buffer
+        0,									// No Auxiliary Buffer (?)
+        PFD_MAIN_PLANE,						// Main Drawing Layer
+        0,									// Reserved (?)
+        0, 0, 0								// Layer Masks Ignored (?)
+    };
+
+    switch (message)
+    {
+        case WM_CREATE:
+            // Gets A Device Context For The Window
+            hDC = GetDC(hWnd);
+
+            // Finds The Closest Match To The Pixel Format We Set Above
+            PixelFormat = ChoosePixelFormat(hDC, &pfd);
+
+            // No Matching Pixel Format?
+            if (!PixelFormat)
+            {
+                MessageBox(0, _TEXT("Can't Find A Suitable PixelFormat."), _TEXT("Error"),MB_OK | MB_ICONERROR);
+
+                // This Sends A 'Message' Telling The Program To Quit
+                PostQuitMessage(0);
+                break;
+            }
+
+            // Can We Set The Pixel Mode?
+            if (!SetPixelFormat(hDC, PixelFormat, &pfd))
+            {
+                MessageBox(0, _TEXT("Can't Set The PixelFormat."), _TEXT("Error"), MB_OK | MB_ICONERROR);
+
+                // This Sends A 'Message' Telling The Program To Quit
+                PostQuitMessage(0);
+                break;
+            }
+
+            // Grab A Rendering Context
+            hRC = wglCreateContext(hDC);
+
+            // Did We Get One?
+            if (!hRC)
+            {
+                MessageBox(0, _TEXT("Can't Create A GL Rendering Context."), _TEXT("Error"), MB_OK | MB_ICONERROR);
+
+                // This Sends A 'Message' Telling The Program To Quit
+                PostQuitMessage(0);
+                break;
+            }
+
+            // Can We Make The RC Active?
+            if (!wglMakeCurrent(hDC, hRC))
+            {
+                MessageBox(0, _TEXT("Can't Activate GLRC."), _TEXT("Error"), MB_OK | MB_ICONERROR);
+
+                // This Sends A 'Message' Telling The Program To Quit
+                PostQuitMessage(0);
+                break;
+            }
+
+            // Grab Screen Info For The Current Window
+            GetClientRect(hWnd, &Screen);
+
+            // Initialize The GL Screen Using Screen Info
+            InitGL(Screen.right, Screen.bottom);
+            break;
+
+        case WM_DESTROY:
+        case WM_CLOSE:
+            // Disable Fullscreen Mode
+            ChangeDisplaySettings(NULL, 0);
+
+            // Deletes The Font Display List
+            KillFont();
+
+            // Make The DC Current
+            wglMakeCurrent(hDC, NULL);
+
+            // Kill The RC
+            wglDeleteContext(hRC);
+
+            // Free The DC
+            ReleaseDC(hWnd, hDC);
+
+            // Quit The Program
+            PostQuitMessage(0);
+            break;
+
+        case WM_PAINT:
+            DrawGLScene();
+            SwapBuffers(hDC);
+            break;
+
+        case WM_NOTIFY:
+        case WM_SYSKEYDOWN:
+            PostMessage(hWnd, WM_CLOSE, 0, 0);
+            break;
+
+        case WM_LBUTTONDOWN:
+        case WM_LBUTTONUP:
+        case WM_RBUTTONDOWN:
+        case WM_RBUTTONUP:
+        case WM_MBUTTONDOWN:
+        case WM_MBUTTONUP:
+        case WM_MOUSEMOVE:
+            // If we've got a parent then we must be a preview
+            if (GetParent(hWnd) != 0)
+                return 0;
+
+            if (fFirstTime)
+            {
+                GetCursorPos(&ptLast);
+                fFirstTime = FALSE;
+            }
+
+            GetCursorPos(&ptCursor);
+
+            // if the mouse has moved more than 3 pixels then exit
+            if (abs(ptCursor.x - ptLast.x) >= 3 || abs(ptCursor.y - ptLast.y) >= 3)
+                PostMessage(hWnd, WM_CLOSE, 0, 0);
+
+            ptLast = ptCursor;
+            return 0;
+
+        case WM_SIZE: // Resizing The Screen
+            // Resize To The New Window Size
+            ReSizeGLScene(LOWORD(lParam), HIWORD(lParam));
+            break;
+
+        default:
+            // Pass Windows Messages
+            return DefWindowProc(hWnd, message, wParam, lParam);
+    }
+
+    return 0;
+}
+
+VOID InitSaver(HWND hwndParent)
+{
+    WNDCLASS wc;
+
+    ZeroMemory(&wc, sizeof(wc));
+    wc.style            = CS_HREDRAW | CS_VREDRAW;
+    wc.lpfnWndProc      = WndProc;
+    wc.lpszClassName    = APPNAME;
+    RegisterClass(&wc);
+
+    if (hwndParent != 0)
+    {
+        RECT rect;
+
+        GetClientRect(hwndParent, &rect);
+        CreateWindow(APPNAME, APPNAME,
+                     WS_VISIBLE | WS_CHILD,
+                     0, 0,
+                     rect.right,
+                     rect.bottom,
+                     hwndParent, 0,
+                     hInstance, NULL);
+        fullscreen = FALSE;
+    }
+    else
+    {
+        HWND hwnd;
+        hwnd = CreateWindow(APPNAME, APPNAME,
+                            WS_VISIBLE | WS_POPUP | WS_EX_TOPMOST,
+                            0, 0,
+                            GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN),
+                            HWND_DESKTOP, 0,
+                            hInstance, NULL);
+        ShowWindow(hwnd, SW_SHOWMAXIMIZED);
+        ShowCursor(FALSE);
+        fullscreen = TRUE;
+    }
 }
 
 //
-//	Look for any options Windows has passed to us:
+// Look for any options Windows has passed to us:
 //
-//	-a <hwnd>		(set password)
-//  -s				(screensave)
-//  -p <hwnd>		(preview)
-//  -c <hwnd>		(configure)
+//  -a <hwnd>   (set password)
+//  -s          (screensave)
+//  -p <hwnd>   (preview)
+//  -c <hwnd>   (configure)
 //
 VOID ParseCommandLine(LPTSTR szCmdLine, UCHAR *chOption, HWND *hwndParent)
 {
-	TCHAR ch = *szCmdLine++;
-
-	if(ch == _T('-') || ch == _T('/'))
-		ch = *szCmdLine++;
-
-	if(ch >= _T('A') && ch <= _T('Z'))
-		ch += _T('a') - _T('A');		//convert to lower case
-
-	*chOption = ch;
-	ch = *szCmdLine++;
-
-	if(ch == _T(':'))
-		ch = *szCmdLine++;
-
-	while(ch == _T(' ') || ch == _T('\t'))
-		ch = *szCmdLine++;
-
-	if(isdigit(ch))
-	{
-		unsigned int i = _ttoi(szCmdLine - 1);
-		*hwndParent = (HWND)i;
-	}
-	else
-		*hwndParent = NULL;
-}
+    TCHAR ch = *szCmdLine++;
+
+    if (ch == _T('-') || ch == _T('/'))
+        ch = *szCmdLine++;
+
+    //convert to lower case
+    if (ch >= _T('A') && ch <= _T('Z'))
+        ch += _T('a') - _T('A');
+
+    *chOption = ch;
+    ch = *szCmdLine++;
+
+    if (ch == _T(':'))
+        ch = *szCmdLine++;
+
+    while (ch == _T(' ') || ch == _T('\t'))
+        ch = *szCmdLine++;
+
+    if (_istdigit(ch))
+    {
+        unsigned int i = _ttoi(szCmdLine - 1);
+        *hwndParent = (HWND)i;
+    }
+    else
+    {
+        *hwndParent = NULL;
+    }
+}
+
 
 //
-//	Dialogbox procedure for Configuration window
+// Dialogbox procedure for Configuration window
 //
 BOOL CALLBACK ConfigDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
-	switch(uMsg)
-	{
+    switch (uMsg)
+    {
         case WM_INITDIALOG:
-			SetDlgItemText(hwnd, IDC_MESSAGE_TEXT, m_Text);
-			return TRUE;
+            SetDlgItemText(hwnd, IDC_MESSAGE_TEXT, m_Text);
+            return TRUE;
+
         case WM_COMMAND:
-            switch(LOWORD(wParam))
+            switch (LOWORD(wParam))
             {
                 case IDOK:
-					GetDlgItemText(hwnd, IDC_MESSAGE_TEXT, m_Text, MAX_PATH);
-					SaveSettings();
+                    GetDlgItemText(hwnd, IDC_MESSAGE_TEXT, m_Text, MAX_PATH);
+                    SaveSettings();
                     EndDialog(hwnd, IDOK);
-                break;
+                    break;
+
                 case IDCANCEL:
                     EndDialog(hwnd, IDCANCEL);
-                break;
+                    break;
             }
-			return FALSE;
-		case WM_CLOSE:
-			EndDialog(hwnd, 0);
-			break;
+            return FALSE;
+
+        case WM_CLOSE:
+            EndDialog(hwnd, 0);
+            break;
+
         default:
             return FALSE;
-	}
-
-	return TRUE;
-}
-
-void Configure(void)
-{
-	DialogBox(hInstance, MAKEINTRESOURCE(IDD_CONFIG), NULL , (DLGPROC)ConfigDlgProc);	
-}
-
-int CALLBACK _tWinMain (HINSTANCE hInst,
-                      HINSTANCE hPrev,
-                      LPTSTR lpCmdLine,
-                      int iCmdShow)
-{
-	HWND	hwndParent = 0;
-	UCHAR	chOption;
-	MSG	Message;
-
-	hInstance = hInst;
-
-	ParseCommandLine(lpCmdLine, &chOption, &hwndParent);
-
-	LoadSettings();
-
-	switch(chOption)
-	{
-		case 's':
-			InitSaver(0);
-			break;
-
-		case 'p':
-			InitSaver(hwndParent);
-			break;
-
-		case 'c':
-		default:
-			Configure();
-			return 0;
-	}
-
-	while (GetMessage(&Message, 0, 0, 0))
-		DispatchMessage(&Message);
-
-	return Message.wParam;
-}
-
+    }
+
+    return TRUE;
+}
+
+VOID Configure(VOID)
+{
+    DialogBox(hInstance, MAKEINTRESOURCE(IDD_CONFIG), NULL , (DLGPROC)ConfigDlgProc);
+}
+
+INT CALLBACK
+_tWinMain(HINSTANCE hInst,
+          HINSTANCE hPrev,
+          LPTSTR lpCmdLine,
+          INT iCmdShow)
+{
+    HWND hwndParent = 0;
+    UCHAR chOption;
+    MSG Message;
+
+    hInstance = hInst;
+
+    ParseCommandLine(lpCmdLine, &chOption, &hwndParent);
+
+    LoadSettings();
+
+    switch (chOption)
+    {
+        case _T('s'):
+            InitSaver(0);
+            break;
+
+        case _T('p'):
+            InitSaver(hwndParent);
+            break;
+
+        case _T('c'):
+        default:
+            Configure();
+            return 0;
+    }
+
+    while (GetMessage(&Message, 0, 0, 0))
+        DispatchMessage(&Message);
+
+    return Message.wParam;
+}
+




More information about the Ros-diffs mailing list