Jump to content

  • Log In with Google      Sign In   
  • Create Account

Awesome job so far everyone! Please give us your feedback on how our article efforts are going. We still need more finished articles for our May contest theme: Remake the Classics

fstim82

Member Since 17 May 2007
Offline Last Active Jan 04 2013 09:01 PM
-----

Topics I've Started

Help with the basics...

01 January 2013 - 10:44 AM

Why am I not seeing a red triangle on my blue screen?

 
 
#pragma comment(linker, "/subsystem:windows")
 
#include <windows.h>
#pragma comment (lib, "openGL32")
#include <gl/gl.h>
#include <gl/glu.h>
 
 
HDC g_HDC;
bool fullScreen = true;
 
void Render()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
    glMatrixMode( GL_MODELVIEW );
    glLoadIdentity();
 
 
glColor4f(1.0f, 0.0f, 0.0f, 0.0f);
 
glPushMatrix();
glLoadIdentity();

glBegin(GL_POLYGON);
 
float zPos = -10.0f;
 
glVertex3f(100.0f, 100.0f, zPos);
glVertex3f(200.0f, 200.0f, zPos);
glVertex3f(300.0f, 100.0f, zPos);
 
glEnd();
    glPopMatrix();
 
    glFlush();
 
    // Bring back buffer to foreground
    SwapBuffers(g_HDC);
}
 
void SetupPixelFormat(HDC hDC)
{
    int nPixelFormat;
 
    static PIXELFORMATDESCRIPTOR pfd = {
            sizeof(PIXELFORMATDESCRIPTOR),          //size of structure
            1,                                      //default version
            PFD_DRAW_TO_WINDOW |                    //window drawing support
            PFD_SUPPORT_OPENGL |                    //opengl support
            PFD_DOUBLEBUFFER,                       //double buffering support
            PFD_TYPE_RGBA,                          //RGBA color mode
            32,                                     //32 bit color mode
            0, 0, 0, 0, 0, 0,                       //ignore color bits
            0,                                      //no alpha buffer
            0,                                      //ignore shift bit
            0,                                      //no accumulation buffer
            0, 0, 0, 0,                             //ignore accumulation bits
            16,                                     //16 bit z-buffer size
            0,                                      //no stencil buffer
            0,                                      //no aux buffer
            PFD_MAIN_PLANE,                         //main drawing plane
            0,                                      //reserved
            0, 0, 0 };                              //layer masks ignored
 
    nPixelFormat = ChoosePixelFormat(hDC, &pfd);

    SetPixelFormat(hDC, nPixelFormat, &pfd);
}
 
void InitOpenGL()
{

GLint iViewport[4];
    glGetIntegerv( GL_VIEWPORT, iViewport );
glViewport(0, 0, iViewport[2], iViewport[3]);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
    glOrtho( iViewport[0], iViewport[0]+iViewport[2], iViewport[1], iViewport[1]+iViewport[3], -100.0f, 100.0f );
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
 
glEnable(GL_DEPTH_TEST);
glFrontFace(GL_CW);
//glPolygonMode(GL_FRONT, GL_FILL);
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glDisable(GL_CULL_FACE);
 
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
//glEnable(GL_BLEND);
 
glClearColor(0.0f, 0.0f, 1.0f, 0.0f);
}
 
/*      Windows Event Procedure Handler */
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    //      Rendering and Device Context variables are declared here.
    static HGLRC hRC;
    static HDC hDC;
 
    //      Width and Height for the window our robot is to be displayed in.
    int width, height;
 
    switch(message)
    {
            case WM_CREATE: //window being created
{
                    hDC = GetDC(hwnd);  //get current windows device context
                    g_HDC = hDC;
 
SetupPixelFormat(hDC); //call our pixel format setup function
 
                    //      Create rendering context and make it current
                    hRC = wglCreateContext(hDC);
                    wglMakeCurrent(hDC, hRC);
 
InitOpenGL();
 
                    return 0;
                    break;
}
            case WM_CLOSE:  //window is closing
{
                    /*      Deselect rendering context and delete it*/
                    wglMakeCurrent(hDC, NULL);
                    wglDeleteContext(hRC);
 
                    /*      Send quit message to queue*/
                    PostQuitMessage(0);
 
                    return 0;
                    break;
}
            case WM_SIZE:
{
                    /*      Retrieve width and height*/
                    height = HIWORD(lParam);
                    width = LOWORD(lParam);
 
                    /*      Don't want a divide by 0*/
                    if (height == 0)
                            height = 1;
 
                    /*      Reset the viewport to new dimensions*/
                    glViewport(0, 0, width, height);
 
                    /*      Set current Matrix to projection and load in the orthographic matrix*/
                    //glMatrixMode(GL_PROJECTION);
                    //glLoadIdentity(); //reset projection matrix
//glOrtho(...
 
                    //glMatrixMode(GL_MODELVIEW); //set modelview matrix
                    //glLoadIdentity(); //reset modelview matrix
 
                    return 0;
                    break;
}
            default:
{
                    break;
}
    }
 
    return (DefWindowProc(hwnd, message, wParam, lParam));
}
 
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
// Getting rid of unused variable warnings.
(nCmdShow);
(lpCmdLine);
(hPrevInstance);
 
    WNDCLASSEX windowClass;         //window class
    HWND    hwnd;                   //window handle
    MSG     msg = MSG();            //message
    bool    done;                   //flag for completion of app
    DWORD   dwExStyle;              //window extended style
    DWORD   dwStyle;                //window style
    RECT    windowRect;
 
    /*      Screen/display attributes*/
    int width = 2880;
    int height = 1800;
    int bits = 32;
 
    windowRect.left =(long)0;               //set left value to 0
    windowRect.right =(long)width; //set right value to requested width
    windowRect.top =(long)0;                //set top value to 0
    windowRect.bottom =(long)height; //set bottom value to requested height
 
    /*      Fill out the window class structure*/
    windowClass.cbSize              = sizeof(WNDCLASSEX);
    windowClass.style               = CS_HREDRAW | CS_VREDRAW;
    windowClass.lpfnWndProc         = WndProc;
    windowClass.cbClsExtra          = 0;
    windowClass.cbWndExtra          = 0;
    windowClass.hInstance           = hInstance;
    windowClass.hIcon               = LoadIcon(NULL, IDI_APPLICATION);
    windowClass.hCursor             = LoadCursor(NULL, IDC_ARROW);
    windowClass.hbrBackground       = NULL;
    windowClass.lpszMenuName        = NULL;
    windowClass.lpszClassName       = "MyClass";
    windowClass.hIconSm             = LoadIcon(NULL, IDI_WINLOGO);
 
    /*      Register window class*/
    if (!RegisterClassEx(&windowClass))
            return 0;
 
    /*      Check if fullscreen is on*/
    if (fullScreen)
    {
        DEVMODE dmScreenSettings;
        memset(&dmScreenSettings, 0, sizeof(dmScreenSettings));
        dmScreenSettings.dmSize = sizeof(dmScreenSettings);
        dmScreenSettings.dmPelsWidth = width;   //screen width
        dmScreenSettings.dmPelsHeight = height; //screen height
        dmScreenSettings.dmBitsPerPel = bits;   //bits per pixel
        dmScreenSettings.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;
 
        if( ChangeDisplaySettings(&dmScreenSettings, CDS_FULLSCREEN != DISP_CHANGE_SUCCESSFUL) )
        {
            /*      Setting display mode failed, switch to windowed*/
            MessageBox(NULL, "Display mode failed", NULL, MB_OK);
            fullScreen = false;
        }
    }
 
    /*      Check if fullscreen is still on*/
    if (fullScreen)
    {
        dwExStyle = WS_EX_APPWINDOW;    // window extended style
        dwStyle = WS_POPUP;             // windows style
        ShowCursor(FALSE);              // hide mouse pointer
    }
    else
    {
        dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE; //window extended style
        dwStyle = WS_OVERLAPPEDWINDOW;                  //windows style
    }
 
    AdjustWindowRectEx(&windowRect, dwStyle, FALSE, dwExStyle);
 
    /*      Class registerd, so now create our window*/
    hwnd = CreateWindowEx(NULL, "MyClass", //class name
"2D_Project", //app name
dwStyle |
WS_CLIPCHILDREN |
WS_CLIPSIBLINGS,
0, 0, //x and y coords
windowRect.right - windowRect.left,
windowRect.bottom - windowRect.top, //width, height
NULL, //handle to parent
NULL, //handle to menu
hInstance, //application instance
NULL); //no xtra params
 
    /*      Check if window creation failed (hwnd = null ?)*/
    if (!hwnd)
return 0;
 
    ShowWindow(hwnd, SW_SHOW);      //display window
    UpdateWindow(hwnd);             //update window
 
    done = false;   //initialize loop condition variable
 
    /*      Main message loop*/
    while (!done)
    {
        PeekMessage(&msg, hwnd, NULL, NULL, PM_REMOVE);
 
        if (msg.message == WM_QUIT)     //did we receive a quit message?
        {
done = true;
}
        else
        {
            Render();
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
 
    if (fullScreen)
    {
        ChangeDisplaySettings(NULL, 0);
        ShowCursor(TRUE);
    }
 
    return msg.wParam;
}

sql help needed

30 October 2012 - 09:28 AM

I'm attempting to write a stored procedure in Microsoft SQL Server Management Studio Express 2005 version 9.00.2047.00. I have no SQL experience, but I've managed to come up with this so far:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[DeleteGuestAccount]
@AccountId int
AS
BEGIN
DECLARE @Guest bit;
SET @Guest = 0;
-- First make sure its a guest account.
SELECT
CASE isGuest
WHEN 0 THEN SET @Guest = 0
ELSE SET @Guest = 1
END
FROM
dbo.Account
WHERE
AccountId = @AccountId;
IF @Guest = 1
BEGIN
-- Delete table entries.
DELETE FROM dbo.Account
WHERE AccountId=@AccountId;
DELETE FROM dbo.AvatarListSecond
WHERE OwnerId=@AccountId;
DELETE FROM dbo.BanAndUnChat
WHERE AccountId=@AccountId;
...
END
END


The problem at the moment is that there is incorrect syntax near the SET, ELSE, and FROM keywords. Can anyone tell me based on what I've written here what I'm supposed to have?

PARTNERS