mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 20:20:18 +01:00
Redo the fragment program examples to match vp's
we just load text files instead of compiling tons of small binaries
This commit is contained in:
parent
025b140b2f
commit
63a9d835ce
70 changed files with 155 additions and 3765 deletions
|
|
@ -1,8 +1,8 @@
|
||||||
# Configuration for debugging on Linux
|
# Configuration for Linux and LLVM with debugging info
|
||||||
|
|
||||||
include $(TOP)/configs/linux
|
include $(TOP)/configs/linux
|
||||||
|
|
||||||
CONFIG_NAME = linux-debug
|
CONFIG_NAME = linux-llvm
|
||||||
|
|
||||||
OPT_FLAGS = -g -ansi -pedantic
|
OPT_FLAGS = -g -ansi -pedantic
|
||||||
DEFINES += -DDEBUG -DDEBUG_MATH
|
DEFINES += -DDEBUG -DDEBUG_MATH
|
||||||
|
|
|
||||||
|
|
@ -11,46 +11,14 @@ include $(TOP)/configs/current
|
||||||
LIBS = $(APP_LIB_DEPS)
|
LIBS = $(APP_LIB_DEPS)
|
||||||
|
|
||||||
SOURCES = \
|
SOURCES = \
|
||||||
tri-abs.c \
|
|
||||||
tri-add.c \
|
|
||||||
tri-cmp.c \
|
|
||||||
tri-cos.c \
|
|
||||||
tri-dp3.c \
|
|
||||||
tri-dp4.c \
|
|
||||||
tri-dph.c \
|
|
||||||
tri-dst.c \
|
|
||||||
tri-ex2.c \
|
|
||||||
tri-flr.c \
|
|
||||||
tri-frc.c \
|
|
||||||
tri-kil.c \
|
|
||||||
tri-lg2.c \
|
|
||||||
tri-lit.c \
|
|
||||||
tri-lrp.c \
|
|
||||||
tri-mad.c \
|
|
||||||
tri-max.c \
|
|
||||||
tri-min.c \
|
|
||||||
tri-mov.c \
|
|
||||||
tri-mul.c \
|
|
||||||
tri-pow.c \
|
|
||||||
tri-param.c \
|
|
||||||
tri-rcp.c \
|
|
||||||
tri-rsq.c \
|
|
||||||
tri-scs.c \
|
|
||||||
tri-sge.c \
|
|
||||||
tri-sge2.c \
|
|
||||||
tri-sin.c \
|
|
||||||
tri-slt.c \
|
|
||||||
tri-sub.c \
|
|
||||||
tri-swz.c \
|
|
||||||
tri-swz2.c \
|
|
||||||
tri-tex.c \
|
tri-tex.c \
|
||||||
tri-xpd.c \
|
|
||||||
tri-position.c \
|
|
||||||
point-position.c \
|
point-position.c \
|
||||||
tri-depth.c \
|
tri-depth.c \
|
||||||
tri-depth2.c \
|
tri-depth2.c \
|
||||||
tri-depthwrite.c \
|
tri-depthwrite.c \
|
||||||
tri-depthwrite2.c \
|
tri-depthwrite2.c \
|
||||||
|
tri-param.c \
|
||||||
|
fp-tri.c
|
||||||
|
|
||||||
NOTDONE=\
|
NOTDONE=\
|
||||||
tri-txb.c \
|
tri-txb.c \
|
||||||
|
|
|
||||||
5
progs/fp/abs.txt
Normal file
5
progs/fp/abs.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
SUB R0, {0.5}.x, fragment.color;
|
||||||
|
ABS result.color, R0;
|
||||||
|
END
|
||||||
5
progs/fp/add.txt
Normal file
5
progs/fp/add.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
ADD R0, fragment.color, fragment.color;
|
||||||
|
ADD result.color, R0, R0;
|
||||||
|
END
|
||||||
5
progs/fp/cmp.txt
Normal file
5
progs/fp/cmp.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
SUB R0, {0.5}.x, fragment.color;
|
||||||
|
CMP result.color, R0, fragment.color, {0.0}.x;
|
||||||
|
END
|
||||||
8
progs/fp/cos.txt
Normal file
8
progs/fp/cos.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
MUL R0, fragment.color, {3.14}.x;
|
||||||
|
COS result.color.x, R0.x;
|
||||||
|
COS result.color.y, R0.y;
|
||||||
|
COS result.color.z, R0.z;
|
||||||
|
END
|
||||||
|
|
||||||
4
progs/fp/dp3.txt
Normal file
4
progs/fp/dp3.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
DP3 result.color, fragment.color, fragment.color;
|
||||||
|
END
|
||||||
4
progs/fp/dp4.txt
Normal file
4
progs/fp/dp4.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
DP4 result.color, fragment.color.xxxx, fragment.color;
|
||||||
|
END
|
||||||
4
progs/fp/dph.txt
Normal file
4
progs/fp/dph.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
DPH result.color, fragment.color, fragment.color.xyzx;
|
||||||
|
END
|
||||||
3
progs/fp/dst.txt
Normal file
3
progs/fp/dst.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
DST result.color, fragment.color, fragment.color;
|
||||||
|
END
|
||||||
5
progs/fp/ex2.txt
Normal file
5
progs/fp/ex2.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
EX2 R0, fragment.color.x;
|
||||||
|
SUB result.color, R0, {1.0}.x;
|
||||||
|
END
|
||||||
5
progs/fp/flr.txt
Normal file
5
progs/fp/flr.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
ADD R0, fragment.color, {0.5}.x;
|
||||||
|
FLR result.color, R0;
|
||||||
|
END
|
||||||
5
progs/fp/frc.txt
Normal file
5
progs/fp/frc.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
MUL R0, fragment.color, {3.0}.x;
|
||||||
|
FRC result.color, R0;
|
||||||
|
END
|
||||||
6
progs/fp/kil.txt
Normal file
6
progs/fp/kil.txt
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
SUB R0, fragment.color, {0.5,0,0,0};
|
||||||
|
KIL R0;
|
||||||
|
MOV result.color, R0;
|
||||||
|
END
|
||||||
5
progs/fp/lg2.txt
Normal file
5
progs/fp/lg2.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
MUL R0, fragment.color, {4.0}.x;
|
||||||
|
LG2 result.color, R0.x;
|
||||||
|
END
|
||||||
5
progs/fp/lit.txt
Normal file
5
progs/fp/lit.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
SUB R0, {0.5}.x, fragment.color;
|
||||||
|
LIT result.color, R0;
|
||||||
|
END
|
||||||
4
progs/fp/lrp.txt
Normal file
4
progs/fp/lrp.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0, R1;
|
||||||
|
LRP result.color, fragment.color.z, {1,0,0,1}, {0,1,0,1};
|
||||||
|
END
|
||||||
4
progs/fp/mad.txt
Normal file
4
progs/fp/mad.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0, R1;
|
||||||
|
MAD result.color, fragment.color.z, {1,0,0,1}, fragment.color;
|
||||||
|
END
|
||||||
3
progs/fp/max.txt
Normal file
3
progs/fp/max.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
MAX result.color, {0.5}.x, fragment.color;
|
||||||
|
END
|
||||||
3
progs/fp/min.txt
Normal file
3
progs/fp/min.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
MIN result.color, {0.5}.x, fragment.color;
|
||||||
|
END
|
||||||
3
progs/fp/mov.txt
Normal file
3
progs/fp/mov.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
MOV result.color, fragment.color;
|
||||||
|
END
|
||||||
3
progs/fp/mul.txt
Normal file
3
progs/fp/mul.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
MUL result.color, fragment.color, fragment.color;
|
||||||
|
END
|
||||||
3
progs/fp/position.txt
Normal file
3
progs/fp/position.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
MUL result.color, fragment.position, {.005}.x;
|
||||||
|
END
|
||||||
4
progs/fp/pow.txt
Normal file
4
progs/fp/pow.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
POW result.color, fragment.color.x, fragment.color.y;
|
||||||
|
END
|
||||||
5
progs/fp/rcp.txt
Normal file
5
progs/fp/rcp.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
ADD R0, fragment.color.x, fragment.color.x;
|
||||||
|
RCP result.color, R0.x;
|
||||||
|
END
|
||||||
5
progs/fp/rsq.txt
Normal file
5
progs/fp/rsq.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
MUL R0, fragment.color, {3.0}.x;
|
||||||
|
RSQ result.color, R0.x;
|
||||||
|
END
|
||||||
5
progs/fp/scs.txt
Normal file
5
progs/fp/scs.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
MUL R0, fragment.color, {3.14}.x;
|
||||||
|
SCS result.color, R0.x;
|
||||||
|
END
|
||||||
3
progs/fp/sge.txt
Normal file
3
progs/fp/sge.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
SGE result.color, {0.5}.x, fragment.color;
|
||||||
|
END
|
||||||
8
progs/fp/sge2.txt
Normal file
8
progs/fp/sge2.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
TEMP R1;
|
||||||
|
SGE R0, fragment.color, fragment.color.yzxw;
|
||||||
|
SGE R1, fragment.color, fragment.color.zxyw;
|
||||||
|
MUL R0, R0, R1;
|
||||||
|
MUL result.color, R0, fragment.color;
|
||||||
|
END
|
||||||
8
progs/fp/sin.txt
Normal file
8
progs/fp/sin.txt
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0;
|
||||||
|
MUL R0, fragment.color, {3.14}.x;
|
||||||
|
MOV result.color, {0.0}.x;
|
||||||
|
SIN result.color.x, R0.x;
|
||||||
|
SIN result.color.y, R0.y;
|
||||||
|
SIN result.color.z, R0.z;
|
||||||
|
END
|
||||||
3
progs/fp/slt.txt
Normal file
3
progs/fp/slt.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
SLT result.color, {0.5}.x, fragment.color;
|
||||||
|
END
|
||||||
3
progs/fp/sub.txt
Normal file
3
progs/fp/sub.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
SUB result.color, fragment.color.yzxw, fragment.color;
|
||||||
|
END
|
||||||
3
progs/fp/swz.txt
Normal file
3
progs/fp/swz.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
SWZ result.color, fragment.color, 1,x,y,z;
|
||||||
|
END
|
||||||
4
progs/fp/swz2.txt
Normal file
4
progs/fp/swz2.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
TEMP R0, R1;
|
||||||
|
SWZ result.color, fragment.color, 1, 0, 0, 1;
|
||||||
|
END
|
||||||
|
|
@ -1,107 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"SUB R0, {0.5}.x, fragment.color; \n"
|
|
||||||
"ABS result.color, R0; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"ADD R0, fragment.color, fragment.color; \n"
|
|
||||||
"ADD result.color, R0, R0; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"SUB R0, {0.5}.x, fragment.color; \n"
|
|
||||||
"CMP result.color, R0, fragment.color, {0.0}.x; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,113 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0; \n"
|
|
||||||
"MUL R0, fragment.color, {3.14}.x; \n"
|
|
||||||
"COS result.color.x, R0.x; \n"
|
|
||||||
"COS result.color.y, R0.y; \n"
|
|
||||||
"COS result.color.z, R0.z; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"DP3 result.color, fragment.color, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"DP4 result.color, fragment.color.xxxx, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"DPH result.color, fragment.color, fragment.color.xyzx; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"DST result.color, fragment.color, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"EX2 R0, fragment.color.x; \n"
|
|
||||||
"SUB result.color, R0, {1.0}.x; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"ADD R0, fragment.color, {0.5}.x; \n"
|
|
||||||
"FLR result.color, R0; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"SLT result.color, {0.5}.x, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0; \n"
|
|
||||||
"MUL R0, fragment.color, {3.0}.x; \n"
|
|
||||||
"FRC result.color, R0; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"SUB R0, fragment.color, {0.5,0,0,0}; \n"
|
|
||||||
"KIL R0;"
|
|
||||||
"MOV result.color, R0;"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"MUL R0, fragment.color, {4.0}.x; \n"
|
|
||||||
"LG2 result.color, R0.x; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"SUB R0, {0.5}.x, fragment.color; \n"
|
|
||||||
"LIT result.color, R0; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0, R1;\n"
|
|
||||||
"LRP result.color, fragment.color.z, {1,0,0,1}, {0,1,0,1}; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0, R1;\n"
|
|
||||||
"MAD result.color, fragment.color.z, {1,0,0,1}, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"MAX result.color, {0.5}.x, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"MIN result.color, {0.5}.x, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,102 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"MOV result.color, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB | GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"MUL result.color, fragment.color, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"MUL result.color, fragment.position, {.005}.x; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"POW result.color, fragment.color.x, fragment.color.y; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"ADD R0, fragment.color.x, fragment.color.x; \n"
|
|
||||||
"RCP result.color, R0.x; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,110 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"MUL R0, fragment.color, {3.0}.x; \n"
|
|
||||||
"RSQ result.color, R0.x; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,111 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0; \n"
|
|
||||||
"MUL R0, fragment.color, {3.14}.x; \n"
|
|
||||||
"SCS result.color, R0.x; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"SGE result.color, {0.5}.x, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0;\n"
|
|
||||||
"TEMP R1;\n"
|
|
||||||
"SGE R0, fragment.color, fragment.color.yzxw; \n"
|
|
||||||
"SGE R1, fragment.color, fragment.color.zxyw; \n"
|
|
||||||
"MUL R0, R0, R1; \n"
|
|
||||||
"MUL result.color, R0, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0; \n"
|
|
||||||
"MUL R0, fragment.color, {3.14}.x; \n"
|
|
||||||
"MOV result.color, {0.0}.x; \n"
|
|
||||||
"SIN result.color.x, R0.x; \n"
|
|
||||||
"SIN result.color.y, R0.y; \n"
|
|
||||||
"SIN result.color.z, R0.z; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"SLT result.color, {0.5}.x, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"SUB result.color, fragment.color.yzxw, fragment.color; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"SWZ result.color, fragment.color, 1,x,y,z; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"TEMP R0, R1;\n"
|
|
||||||
"SWZ result.color, fragment.color, 1, 0, 0, 1; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,108 +0,0 @@
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#define GL_GLEXT_PROTOTYPES
|
|
||||||
#include <GL/glut.h>
|
|
||||||
#include "GL/gl.h"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void Init( void )
|
|
||||||
{
|
|
||||||
static const char *modulate2D =
|
|
||||||
"!!ARBfp1.0\n"
|
|
||||||
"XPD result.color, fragment.color, {2,2,2,0}; \n"
|
|
||||||
"END"
|
|
||||||
;
|
|
||||||
GLuint modulateProg;
|
|
||||||
|
|
||||||
if (!glutExtensionSupported("GL_ARB_fragment_program")) {
|
|
||||||
printf("Error: GL_ARB_fragment_program not supported!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
|
|
||||||
|
|
||||||
/* Setup the fragment program */
|
|
||||||
glGenProgramsARB(1, &modulateProg);
|
|
||||||
glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, modulateProg);
|
|
||||||
glProgramStringARB(GL_FRAGMENT_PROGRAM_ARB, GL_PROGRAM_FORMAT_ASCII_ARB,
|
|
||||||
strlen(modulate2D), (const GLubyte *)modulate2D);
|
|
||||||
|
|
||||||
printf("glGetError = 0x%x\n", (int) glGetError());
|
|
||||||
printf("glError(GL_PROGRAM_ERROR_STRING_ARB) = %s\n",
|
|
||||||
(char *) glGetString(GL_PROGRAM_ERROR_STRING_ARB));
|
|
||||||
|
|
||||||
glEnable(GL_FRAGMENT_PROGRAM_ARB);
|
|
||||||
|
|
||||||
glClearColor(.3, .3, .3, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Reshape(int width, int height)
|
|
||||||
{
|
|
||||||
|
|
||||||
glViewport(0, 0, (GLint)width, (GLint)height);
|
|
||||||
|
|
||||||
glMatrixMode(GL_PROJECTION);
|
|
||||||
glLoadIdentity();
|
|
||||||
glOrtho(-1.0, 1.0, -1.0, 1.0, -0.5, 1000.0);
|
|
||||||
glMatrixMode(GL_MODELVIEW);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Key(unsigned char key, int x, int y)
|
|
||||||
{
|
|
||||||
|
|
||||||
switch (key) {
|
|
||||||
case 27:
|
|
||||||
exit(1);
|
|
||||||
default:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
glutPostRedisplay();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Draw(void)
|
|
||||||
{
|
|
||||||
glClear(GL_COLOR_BUFFER_BIT);
|
|
||||||
|
|
||||||
glBegin(GL_TRIANGLES);
|
|
||||||
glColor3f(0,0,1);
|
|
||||||
glVertex3f( 0.9, -0.9, -30.0);
|
|
||||||
glColor3f(1,0,0);
|
|
||||||
glVertex3f( 0.9, 0.9, -30.0);
|
|
||||||
glColor3f(0,1,0);
|
|
||||||
glVertex3f(-0.9, 0.0, -30.0);
|
|
||||||
glEnd();
|
|
||||||
|
|
||||||
glFlush();
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
GLenum type;
|
|
||||||
|
|
||||||
glutInit(&argc, argv);
|
|
||||||
|
|
||||||
|
|
||||||
glutInitWindowPosition(0, 0); glutInitWindowSize( 250, 250);
|
|
||||||
|
|
||||||
type = GLUT_RGB;
|
|
||||||
type |= GLUT_SINGLE;
|
|
||||||
glutInitDisplayMode(type);
|
|
||||||
|
|
||||||
if (glutCreateWindow("First Tri") == GL_FALSE) {
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Init();
|
|
||||||
|
|
||||||
glutReshapeFunc(Reshape);
|
|
||||||
glutKeyboardFunc(Key);
|
|
||||||
glutDisplayFunc(Draw);
|
|
||||||
glutMainLoop();
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
3
progs/fp/xpd.txt
Normal file
3
progs/fp/xpd.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
!!ARBfp1.0
|
||||||
|
XPD result.color, fragment.color, {2,2,2,0};
|
||||||
|
END
|
||||||
|
|
@ -157,6 +157,7 @@ add_interpolator(struct gallivm_prog *prog,
|
||||||
prog->interpolators[prog->num_interp] = *interp;
|
prog->interpolators[prog->num_interp] = *interp;
|
||||||
++prog->num_interp;
|
++prog->num_interp;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
translate_declaration(struct gallivm_prog *prog,
|
translate_declaration(struct gallivm_prog *prog,
|
||||||
llvm::Module *module,
|
llvm::Module *module,
|
||||||
|
|
@ -470,8 +471,6 @@ translate_instruction(llvm::Module *module,
|
||||||
break;
|
break;
|
||||||
case TGSI_OPCODE_TXD:
|
case TGSI_OPCODE_TXD:
|
||||||
break;
|
break;
|
||||||
case TGSI_OPCODE_TXP:
|
|
||||||
break;
|
|
||||||
case TGSI_OPCODE_UP2H:
|
case TGSI_OPCODE_UP2H:
|
||||||
break;
|
break;
|
||||||
case TGSI_OPCODE_UP2US:
|
case TGSI_OPCODE_UP2US:
|
||||||
|
|
@ -1015,11 +1014,12 @@ struct gallivm_cpu_engine * gallivm_cpu_engine_create(struct gallivm_prog *prog)
|
||||||
llvm::Module *mod = static_cast<llvm::Module*>(prog->module);
|
llvm::Module *mod = static_cast<llvm::Module*>(prog->module);
|
||||||
llvm::ExistingModuleProvider *mp = new llvm::ExistingModuleProvider(mod);
|
llvm::ExistingModuleProvider *mp = new llvm::ExistingModuleProvider(mod);
|
||||||
llvm::ExecutionEngine *ee = llvm::ExecutionEngine::create(mp, false);
|
llvm::ExecutionEngine *ee = llvm::ExecutionEngine::create(mp, false);
|
||||||
|
ee->DisableLazyCompilation();
|
||||||
cpu->engine = ee;
|
cpu->engine = ee;
|
||||||
|
|
||||||
llvm::Function *func = func_for_shader(prog);
|
llvm::Function *func = func_for_shader(prog);
|
||||||
|
|
||||||
prog->function = ee->getPointerToFunctionOrStub(func);
|
prog->function = ee->getPointerToFunction(func);
|
||||||
CPU = cpu;
|
CPU = cpu;
|
||||||
return cpu;
|
return cpu;
|
||||||
}
|
}
|
||||||
|
|
@ -1037,10 +1037,11 @@ void gallivm_cpu_jit_compile(struct gallivm_cpu_engine *cpu, struct gallivm_prog
|
||||||
llvm::ExistingModuleProvider *mp = new llvm::ExistingModuleProvider(mod);
|
llvm::ExistingModuleProvider *mp = new llvm::ExistingModuleProvider(mod);
|
||||||
llvm::ExecutionEngine *ee = cpu->engine;
|
llvm::ExecutionEngine *ee = cpu->engine;
|
||||||
assert(ee);
|
assert(ee);
|
||||||
|
ee->DisableLazyCompilation();
|
||||||
ee->addModuleProvider(mp);
|
ee->addModuleProvider(mp);
|
||||||
|
|
||||||
llvm::Function *func = func_for_shader(prog);
|
llvm::Function *func = func_for_shader(prog);
|
||||||
prog->function = ee->getPointerToFunctionOrStub(func);
|
prog->function = ee->getPointerToFunction(func);
|
||||||
}
|
}
|
||||||
|
|
||||||
void gallivm_cpu_engine_delete(struct gallivm_cpu_engine *cpu)
|
void gallivm_cpu_engine_delete(struct gallivm_cpu_engine *cpu)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue