Cara membuat program OpenGL dengan menggunakan compiler code blocks.
Bagi yang belumpunya Code Blocks bisa kesini dan cara installnya.
Untuk membuat program OpenGL dengan code blocks caranya sangat mudah, karena code blocks telah menyediakan fasilitas tersebut.
Pertama jalankan code blocks di komputer Anda.
Lalu klik File, pilih New dan Project. Atau Anda dapat langsung klik Create new project (yang bergaris bawah).
Setelah itu pilih OpenGL project, lalu klik tombol Go.
Sampai disini akhir artikel kali ini semoga bermanfaat.
Sumber
Bagi yang belumpunya Code Blocks bisa kesini dan cara installnya.
Untuk membuat program OpenGL dengan code blocks caranya sangat mudah, karena code blocks telah menyediakan fasilitas tersebut.
Pertama jalankan code blocks di komputer Anda.
Lalu klik File, pilih New dan Project. Atau Anda dapat langsung klik Create new project (yang bergaris bawah).
Setelah itu pilih OpenGL project, lalu klik tombol Go.
Klik tombol Next.
Beri nama project (Project title), lalu pilih lokasi folder tempat
project akan diletakkan, Anda dapat gunakan tombol (no. 3) untuk browse
folder di komputer Anda. Lalu klik tombol Next.
Klik tombol Finish.
Maka Anda akan mendapatkan hasil seperti gambar di bawah ini. Klik tanda plus (+) pada Sources.
Lalu klik dua kali pada main.c.
Maka kode program OpenGL akan ditampilkan seperti yang Anda lihat pada
gambar di bawah ini. Klik tombol Build and run (no. 2) untuk menjalankan
program.
Hasil dari program dapat Anda lihat seperti gambar di bawah ini.
Untuk memudahkan Anda belajar berikut ini adalah listing / kode program OpenGL dengan code block, coba bandingkan dengan kode program di artikel ini (dengan Visual Studio 2013 Express).
#include <windows.h>
#include <gl/gl.h>
LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM);
void EnableOpenGL(HWND hwnd, HDC*, HGLRC*);
void DisableOpenGL(HWND, HDC, HGLRC);
int WINAPI WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
WNDCLASSEX wcex;
HWND hwnd;
HDC hDC;
HGLRC hRC;
MSG msg;
BOOL bQuit = FALSE;
float theta = 0.0f;
/* register window class */
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_OWNDC;
wcex.lpfnWndProc = WindowProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = hInstance;
wcex.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = "GLSample";
wcex.hIconSm = LoadIcon(NULL, IDI_APPLICATION);;
if (!RegisterClassEx(&wcex))
return 0;
/* create main window */
hwnd = CreateWindowEx(0,
"GLSample",
"OpenGL Sample",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
256,
256,
NULL,
NULL,
hInstance,
NULL);
ShowWindow(hwnd, nCmdShow);
/* 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;
}
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_CLOSE:
PostQuitMessage(0);
break;
case WM_DESTROY:
return 0;
case WM_KEYDOWN:
{
switch (wParam)
{
case VK_ESCAPE:
PostQuitMessage(0);
break;
}
}
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
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);
}
void DisableOpenGL (HWND hwnd, HDC hDC, HGLRC hRC)
{
wglMakeCurrent(NULL, NULL);
wglDeleteContext(hRC);
ReleaseDC(hwnd, hDC);
}
Sumber













ini apa sih gan? ane ga ngerti :(
ReplyDeletemakasih min ilmunya sngt top dan bermanfaat
ReplyDeletehttp://agendominocamarqq.blogspot.com/2017/05/membahas-perkembangan-perjudian-online.html
ReplyDeletehttp://agendominocamar.blogspot.com/2017/05/mengetahui-5-dewa-judi-paling-terkenal.html
http://agendomino99camarqq.blogspot.com/2017/05/mengetahui-tentang-dapatkah-agen-judi.html
http://agenbandarqcamarqq.blogspot.com/2017/05/membahas-asal-usul-permainan-judi.html
http://camaragenbandarq.blogspot.com/2017/05/mengetahui-sejarah-judi-legal-di.html
http://camarbandarq.com
http://camardominoqq.com
http://qqcamar.com