lets say i wanted to show a white line in dos how would i do it?
lets say i wanted to show a white line in dos how would i do it?
You provide more information than a terse 1-line statement of what you want to achieve.
Like which operating system and compiler you're using.
Be very sure - that nice black box in the middle of your XP system is not DOS - it's a console.
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
If at first you don't succeed, try writing your phone number on the exam paper.
i have dev-c++ i have windows xp(home edition)
lets say i want to show graphics, so the easist graphic to do is probally a strait line am i right?
and what is the source code if i wanted the line is dos or console mode
Dev C++ does not provide any lib to use graphics, at least not one of the leatest version. You should look for specialized graphics libraries like: www.libsdl.org or any ASM routines, altough I do not know if Dev supports assembly.
Nothing more to tell about me...
Happy day =)
I'd go with the libsdl option
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
If at first you don't succeed, try writing your phone number on the exam paper.
SDL 1.0
SDL 1.2
SDL CVS
Games
Demos
Applications
Libraries
wich one of those do i download?
As I recall, there is a menu option in the current dev-c+++ which allows you to download pre-configured additional packages. Libsdl is mentioned in this list.
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
If at first you don't succeed, try writing your phone number on the exam paper.
cout << "-----------------------------------------------";
.
Do not make direct eye contact with me.
Use Bresehnam's algorithm.
256 color mode line drawing
Code:void Line(int x1,int y1,int x2,int y2,BYTE color) { int diffx=x2-x1; int diffy=y2-y1; int xunit=1; int yunit=SCREENMAXY; int length=0; unsigned int offset=y1*SCREENMAXY+x1; int eterm=0; if (diffx<0) { diffx=-diffx; xunit=-xunit; } if (diffy<0) { diffy=-diffy; yunit=-yunit; } if (diffx<diffy) { length=diffx+1; for (int i=0;i<length;i++) { Screen[offset]=color; offset+=xunit; eterm+=diffx; if (eterm>diffy) { eterm-=diffx; offset+=yunit; } } } else { length=diffy+1; for (int i=0;i<length;i++) { Screen[offset]=color; offset+=yunit; eterm+=diffy; if (eterm>0) { eterm-=diffy; offset+=xunit; } } } }
If this does not work correctly then I've confused the eterm+=diffx and if (eterm) sections. I always get them mixed up. If it does not produce correct lines let me know.
Test by doing this:
Line(0,0,centerx,centery,1);
Line(0,maxy,centerx,centery,2);
Line(maxx,0,centerx,centery,3);
Line(maxx,maxy,centerx,centery,4);
Should be an X on the screen with:
Upper left line is dark blue
Upper right line is cyan
Lower left line is green
Lower right line is dark red
All should meet in the center of the screen.
Last edited by VirtualAce; 11-10-2003 at 11:26 AM.
where is the top of the program
#include ect...
int main();
where is that part of it
That's only of any use to you if you're actually implementing a graphics library yourself.
Have you managed to get libsdl installed yet?
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
If at first you don't succeed, try writing your phone number on the exam paper.
i dont understand i have something called opengl on the dev-c++ and that displays graphics
That is the default code lets say instead of that which is a rotating triangle wat would be the code of a simple lineCode:/************************** * Includes * **************************/ #include <windows.h> #include <gl/gl.h> /************************** * Function Declarations * **************************/ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC); void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC); /************************** * WinMain * **************************/ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow) { WNDCLASS wc; HWND hWnd; HDC hDC; HGLRC hRC; MSG msg; BOOL bQuit = FALSE; float theta = 0.0f; /* register window class */ wc.style = CS_OWNDC; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon (NULL, IDI_APPLICATION); wc.hCursor = LoadCursor (NULL, IDC_ARROW); wc.hbrBackground = (HBRUSH) GetStockObject (BLACK_BRUSH); wc.lpszMenuName = NULL; wc.lpszClassName = "GLSample"; RegisterClass (&wc); /* create main window */ hWnd = CreateWindow ( "GLSample", "OpenGL Sample", WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE, 0, 0, 256, 256, NULL, NULL, hInstance, NULL); /* enable OpenGL for the window */ EnableOpenGL (hWnd, &hDC, &hRC); /* program main loop */ while (!bQuit) { /* check for messages */ if (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) { /* handle or dispatch messages */ if (msg.message == WM_QUIT) { bQuit = TRUE; } else { TranslateMessage (&msg); DispatchMessage (&msg); } } else { /* OpenGL animation code goes here */ glClearColor (0.0f, 0.0f, 0.0f, 0.0f); glClear (GL_COLOR_BUFFER_BIT); glPushMatrix (); glRotatef (theta, 0.0f, 0.0f, 1.0f); glBegin (GL_TRIANGLES); glColor3f (1.0f, 0.0f, 0.0f); glVertex2f (0.0f, 1.0f); glColor3f (0.0f, 1.0f, 0.0f); glVertex2f (0.87f, -0.5f); glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (-0.87f, -0.5f); glEnd (); glPopMatrix (); SwapBuffers (hDC); theta += 1.0f; Sleep (1); } } /* shutdown OpenGL */ DisableOpenGL (hWnd, hDC, hRC); /* destroy the window explicitly */ DestroyWindow (hWnd); return msg.wParam; } /******************** * Window Procedure * ********************/ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: return 0; case WM_CLOSE: PostQuitMessage (0); return 0; case WM_DESTROY: return 0; case WM_KEYDOWN: switch (wParam) { case VK_ESCAPE: PostQuitMessage(0); return 0; } return 0; default: return DefWindowProc (hWnd, message, wParam, lParam); } } /******************* * Enable OpenGL * *******************/ void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC) { PIXELFORMATDESCRIPTOR pfd; int iFormat; /* get the device context (DC) */ *hDC = GetDC (hWnd); /* set the pixel format for the DC */ ZeroMemory (&pfd, sizeof (pfd)); pfd.nSize = sizeof (pfd); pfd.nVersion = 1; pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; pfd.iPixelType = PFD_TYPE_RGBA; pfd.cColorBits = 24; pfd.cDepthBits = 16; pfd.iLayerType = PFD_MAIN_PLANE; iFormat = ChoosePixelFormat (*hDC, &pfd); SetPixelFormat (*hDC, iFormat, &pfd); /* create and enable the render context (RC) */ *hRC = wglCreateContext( *hDC ); wglMakeCurrent( *hDC, *hRC ); } /****************** * Disable OpenGL * ******************/ void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC) { wglMakeCurrent (NULL, NULL); wglDeleteContext (hRC); ReleaseDC (hWnd, hDC); }
That's only of any use to you if you're actually implementing a graphics library yourself.
lets say i wanted to show a white line in dos how would i do it?
Did I miss something?
http://cboard.cprogramming.com/showt...light=VGA+unit
This is a very simple VGA unit. It only has basic functionality but it will get you started. Otherwise if you don't want to create your own then get a library. However if you have no idea what is going on in the graphics getting a third party library will only serve to confuse you.
Last edited by VirtualAce; 11-11-2003 at 03:26 AM.