ダン・クァン・ミン Blog

はじめまして

Install openGL in Ubuntu

Install command line

$ sudo apt-get install freeglut3-dev libglew1.5-dev

$ sudo apt-get install libxmu-dev libxi-dev

$ sudo apt-get install binutils-gold

Complie command line

$ cc -I/usr/X11R6/include program.c -L/usr/X11R6/lib -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm -lpthread

$ function ccgl() { cc -I/usr/X11R6/include "$@" -L/usr/X11R6/lib -lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm -lpthread; }

$ ccgl program.c

#

C OpenGL
signed char GLbyte
unsigned char GLubyte, GLboolean
short GLshort
unsigned short GLushort
int, long GLint, GLsizei
unsigned int, unsigned long GLuint, GLenum, GLbitfield
float GLfloat, GLclampf
double GLdouble, GLclampd

Function

void glutInit(int *argcp, char **argv);

glutInitWindowPosition();

glutInitWindowSize();

glutInitDisplayMode();

  • GLUT_RGBA RGBA モード
  • GLUT_RGBAも GLUT_INDEX も記述されないときのデフォルト
  • GLUT_RGB GLUT_RGBA と同じ
  • GLUT_INDEX カラーインデックス モード
  • GLUT_RGBAも記述された場合,上書きする
  • GLUT_SINGLE シングルバッファ モード
  • GLUT_DOUBLE もGLUT_SINGLEも記述されていない場合の デフォルトである
  • GLUT_DOUBLE ダブルバッファ モード
  • GLUT_SINGLE も記述されていた場合,上書きする
  • GLUT_ACCUM アキュムレーション バッファ
  • GLUT_ALPHA カラーバッファにアルファ成分を加えること
  • GLUT_DEPTH デプス(Z)バッファを加えること
  • GLUT_STENCIL ステンシル・バッファを加えること
  • GLUT_MULTISAMPLE マルチサンプリングのサポート
  • GLX_SAMPLE_SGIS エクステンションをサポートしていなければならない
  • GLUT_STEREO ステレオ・ウィンドウビットマスク

int glutCreateWindow(char *name);

void glutDisplayFunc(void (*func)(void));

void glClear(GLbitfield mask);

void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);

void glBegin(GLenum mode);

void glEnd(void);

void glFlush();

Sample

#include <windows.h>
#include <GL/gl.h>
#include <GL/glut.h>

void disp(void) {
    glClearColor(1 , 1 , 1 , 0);
    glClear(GL_COLOR_BUFFER_BIT);

    glBegin(GL_POLYGON);
    glEnd();

    glFlush();
}

int main(int argc , char ** argv) {
    glutInit(&argc , argv);
    glutInitWindowPosition(100 , 50);
    glutInitWindowSize(200 , 100);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);

    glutCreateWindow("Kitty on your lap");
    glutDisplayFunc(disp);
    glutMainLoop();
    return 0;
}

Comments