#pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
#include <GL/freeglut/freeglut.h>
#define WIDTH 320
#define HEIGHT 240
void Line2D(int x1,int y1,int x2, int y2,float size){
glLineWidth(size);
glBegin(GL_LINES);
glVertex2i(x1,y1);
glVertex2i(x2,y2);
glEnd();
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor4f(0.0f,0.0f,0.0f,1.0f);
Line2D(120,40,300,180,1.0);//アンチエイリアスなしの線
glEnable(GL_LINE_SMOOTH);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glHint(GL_LINE_SMOOTH_HINT, GL_DONT_CARE);
Line2D(20,40,200,180,1.0);//アンチエイリアスの線
glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
glutSwapBuffers();
}
void Init(){
glClearColor(1.0, 1.0, 1.0, 1.0);
glOrtho(0, WIDTH, HEIGHT, 0, -1, 1);
}
int main(int argc, char *argv[])
{
glutInitWindowPosition(100, 100);
glutInitWindowSize(WIDTH, HEIGHT);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
glutCreateWindow("アンチエイリアス処理");
glutDisplayFunc(display);
Init();
glutMainLoop();
return 0;
}
|