|
|
Comments and Discussions
|
|
 |

|
Does well what it is made for!
Regards
N. Sharjith
|
|
|
|

|
Ulf,
I tried to compile the solution of the VC++.NET version on VS 9, and it gave a bunch of errors. Any chance you could update this to work on VS 9? This looks like a neat wizard, and I'd love to use it!
Thanks,
thain
modified on Wednesday, January 7, 2009 12:56 PM
|
|
|
|

|
glReadPixels(...) command does not work for me after creating a dialog with this app wizard.
Can someone help ?
This is the code:
void CSelectionTestApp::DrawScene()
{
// TODO: Replace the following sample code with your code to draw the scene.
glClearColor (0.0,0.0,0.0,0.0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable (GL_COLOR_MATERIAL);
glDisable (GL_TEXTURE_2D);
glDrawBuffer(GL_BACK);
// Position and rotate the camera
glTranslatef(0.0f, 0.0f, -5.0f);
// Draw a yellow point
glPointSize(10.0);
glColor3f(1.0f,1.0f,0.0f);
glBegin(GL_POINTS);
glVertex3f(0.5f,0.5f,-0.4f);
glEnd();
if (m_LeftButtonDown)
{
// Get the pixel color
glReadBuffer(GL_BACK);
const unsigned int size = 10;
GLubyte * framebuf = new GLubyte[size];
glReadPixels(m_LeftDownPos.x,m_LeftDownPos.y, 1,1, GL_RGB, GL_UNSIGNED_BYTE, framebuf);
int r = framebuf[0];
int g = framebuf[1];
int b = framebuf[2];
}
}
framebuf gets 255,255,255 always.
Please help !!
|
|
|
|

|
Hi there,
I am having the same problem here...
Does anybody have any idea about this problem?
Cheers folks!
|
|
|
|

|
I got it working by adding the glReadPixels() command within the OnGLDraw() method. Try that and let me know if it works for you. The same is true for me for call lists and other commands. It seems I can't call stuff like glReadPixels() prior to the OnGLDraw() method executing.
I'm also having trouble with tooltips, they have the focus and don't like to lose focus when I refresh the childview. The result is a really slow system stall... ideas ?
|
|
|
|

|
Dear all friends
Nowadays I got a project how to design a real-time image processing or pattern recognition system using VC++? actually i never do this any more. so anyone give me suggestion here. thanks a lot.
Li Zhiyuan
26/06/2007
|
|
|
|

|
Dude, This is a HUGE question. No one can give you an answer unless you give more details.
What do you mean by image processing? As you know Image processing is a huge area and there are many fields in it.
People here can only help you by image processing libraries used with c++ (such as OpenCV library).
Good luck.
|
|
|
|

|
Hi there,
Regarding the appwizard for VC++.net.
Using: VS 2003-SP1, XP pro SP2.
When pressing OK after entering the project name I receive the following error message:
Error in script
Line 2
Char 1
Error Invalid character
Code 0
URL (MyPath)/HTML/1033/default.htm
Clicking 'YES' to continue with the script displays the same mesage again.
Clicking 'YES' again to continue with the script displays:
Error in script
Line 242
Char 2
Error Object expected
Code 0
URL (MyPath)/HTML/1033/default.htm
Clicking 'YES' again to continue with the script displays the GUI.
Changing nothing and clicking 'Finish' gives the error:
Error in script
Line 273
Char 2
Error Object expected
Code 0
URL (MyPath)/HTML/1033/default.htm
Clicking 'YES' again to continue with the script hides the error message leaving the GUI on the screen. The project is not created.
Anybody knows the reason for this?
Thanks,
Bill
|
|
|
|

|
Great AppWiz. But how do I set this to start with the window maximized.
I tried a buch of different things and can't get it to work.
Thanks
Ron
|
|
|
|

|
i have two program that can run..but i can't combine it..
for your information i still studying..
the first program is:
#include
#include
GLfloat vertices [][3] = {{-0.3, -0.3, 0.3}, {-0.23,0.3,0.3} ,
{0.3,0.3,0.3}, {0.3,-0.3,0.3}, {-0.3,-0.3,-0.3} ,
{-0.3,0.3,-0.3}, {0.3,0.3,-0.3},{0.3,-0.3,-0.3}};
GLfloat colors[][3] = {
{1.0,0.0,0.0},{0.0,1.0,1.0},
{1.0,1.0,0.0}, {0.0,1.0,0.0},
{0.0,0.0,1.0}, {1.0,0.0,1.0},
{0.0,0.0,0.0}, {1.0,1.0,1.0}};
void polygon (int a, int b, int c, int d)
{
glBegin(GL_POLYGON);
glColor3fv(colors[a]);
glTexCoord2f(0.0,0.0);
glVertex3fv(vertices[a]);
glColor3fv(colors[b]);
glTexCoord2f(0.0,1.0);
glVertex3fv(vertices[b]);
glColor3fv(colors[c]);
glTexCoord2f(1.0,1.0);
glVertex3fv(vertices[c]);
glColor3fv(colors[d]);
glTexCoord2f(1.0,0.0);
glVertex3fv(vertices[d]);
glEnd();
}
void colorcube()
{
polygon(0,3,2,1);
polygon(2,3,7,6);
polygon(3,0,4,7);
polygon(1,2,6,5);
polygon(4,5,6,7);
polygon(5,4,0,1);
}
static GLfloat theta[]={0.0,0.0,0.0};
static GLint axis = 2 ;
void display (void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotatef(theta[0],1.0,0.0,0.0);
glRotatef(theta[1],0.0,1.0,0.0);
glRotatef(theta[2],0.0,0.0,1.0);
colorcube();
glutSwapBuffers();
}
void spinCube()
{
theta [axis] += 5.0; //speed for cube
if (theta[axis] > 360.0) theta[axis] -= 360.0;
glutPostRedisplay();
}
void mouse (int btn, int state, int x, int y)
{
if(btn == GLUT_LEFT_BUTTON && state == GLUT_DOWN)
axis = 0;
if (btn == GLUT_MIDDLE_BUTTON && state == GLUT_DOWN)
axis = 1;
if (btn == GLUT_RIGHT_BUTTON && state == GLUT_DOWN)
axis = 2;
}
void myReshape(int w, int h)
{
glViewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(w <= h)
glOrtho(-2.0,2.0,-2.0 * (GLfloat) h /(GLfloat)
w,2.0 * (GLfloat)h / (GLfloat) w,
-10.0,10.0);
else
glOrtho(-2.0 * (GLfloat)w /(GLfloat)h,
2.0 * (GLfloat) w / (GLfloat)h,-2.0,2.0,-10.0,10.0);
glMatrixMode(GL_MODELVIEW);
}
int main(int argc, char **argv)
{
GLubyte image [64][64][3];
int i,j,r,c;
for (i =0; i<64; i++)
{
for (j=0; j<64; j++)
{
c = (((i&0x8) == 0)^((j&0x8)==0))*255;
image[i][j][0] = (GLubyte) c;
image[i][j][1] = (GLubyte) c;
image[i][j][2] = (GLubyte) c;
}
}
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500,500);
glutCreateWindow("color cube");
glutReshapeFunc(myReshape);
glutDisplayFunc(display);
glutIdleFunc(spinCube);
glutMouseFunc(mouse);
glEnable(GL_DEPTH_TEST);
glEnable(GL_TEXTURE_2D);
glTexImage2D(GL_TEXTURE_2D,0,GL_RGB,64,64,0,GL_RGB,GL_UNSIGNED_BYTE, image);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,GL_CLAMP);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,GL_CLAMP);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glClearColor(1.0,0.5,1.0,1.0);
glColor3f(1.0,1.0,1.0);
glutMainLoop();
}
and the second program is:
/* field.c - by Tom McReynolds, SGI */
/* Using the accumulation buffer for depth of field (camera focus blur). */
#include
#include
#include
const GLdouble FRUSTDIM = 100.f;
const GLdouble FRUSTNEAR = 320.f;
const GLdouble FRUSTFAR = 660.f;
/*
** Create a single component texture map
*/
GLfloat *make_texture(int maxs, int maxt)
{
int s, t;
static GLfloat *texture;
texture = (GLfloat *)malloc(maxs * maxt * sizeof(GLfloat));
for(t = 0; t < maxt; t++) {
for(s = 0; s < maxs; s++) {
texture[s + maxs * t] = ((s >> 4) & 0x1) ^ ((t >> 4) & 0x1);
}
}
return texture;
}
//enum {SPHERE = 1, CONE};
void
render(void)
{
/* material properties for objects in scene */
static GLfloat wall_mat[] = {1.f, 1.f, 1.f, 1.f};
glClear(GL_DEPTH_BUFFER_BIT|GL_COLOR_BUFFER_BIT);
/*
** Note: wall verticies are ordered so they are all front facing
** this lets me do back face culling to speed things up.
*/
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, wall_mat);
/* floor */
/* make the floor textured */
glEnable(GL_TEXTURE_2D);
/*
** Since we want to turn texturing on for floor only, we have to
** make floor a separate glBegin()/glEnd() sequence. You can't
** turn texturing on and off between begin and end calls
*/
glBegin(GL_QUADS);
glNormal3f(0.f, 1.f, 0.f);
glTexCoord2i(0, 0);
glVertex3f(-100.f, -100.f, -320.f);
glTexCoord2i(1, 0);
glVertex3f( 100.f, -100.f, -320.f);
glTexCoord2i(1, 1);
glVertex3f( 100.f, -100.f, -640.f);
glTexCoord2i(0, 1);
glVertex3f(-100.f, -100.f, -640.f);
glEnd();
glDisable(GL_TEXTURE_2D);
/* walls */
glBegin(GL_QUADS);
/* left wall */
glNormal3f(1.f, 0.f, 0.f);
glVertex3f(-100.f, -100.f, -320.f);
glVertex3f(-100.f, -100.f, -640.f);
glVertex3f(-100.f, 100.f, -640.f);
glVertex3f(-100.f, 100.f, -320.f);
/* right wall */
glNormal3f(-1.f, 0.f, 0.f);
glVertex3f( 100.f, -100.f, -320.f);
glVertex3f( 100.f, 100.f, -320.f);
glVertex3f( 100.f, 100.f, -640.f);
glVertex3f( 100.f, -100.f, -640.f);
/* ceiling */
glNormal3f(0.f, -1.f, 0.f);
glVertex3f(-100.f, 100.f, -320.f);
glVertex3f(-100.f, 100.f, -640.f);
glVertex3f( 100.f, 100.f, -640.f);
glVertex3f( 100.f, 100.f, -320.f);
/* back wall */
glNormal3f(0.f, 0.f, 1.f);
glVertex3f(-100.f, -100.f, -640.f);
glVertex3f( 100.f, -100.f, -640.f);
glVertex3f( 100.f, 100.f, -640.f);
glVertex3f(-100.f, 100.f, -640.f);
glEnd();
glPushMatrix();
glTranslatef(-80.f, -60.f, -420.f);
// glCallList(SPHERE);
glPopMatrix();
glPushMatrix();
glTranslatef(-20.f, -80.f, -600.f);
// glCallList(CONE);
glPopMatrix();
if(glGetError()) /* to catch programming errors; should never happen */
printf("Oops! I screwed up my OpenGL calls somewhere\n");
glFlush(); /* high end machines may need this */
}
enum {NONE, FIELD};
int rendermode = NONE;
void
menu(int selection)
{
rendermode = selection;
glutPostRedisplay();
}
GLdouble focus = 420.;
/* Called when window needs to be redrawn */
void redraw(void)
{
int i, j;
int min, max;
int count;
GLfloat scale, dx, dy;
switch(rendermode) {
case NONE:
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-FRUSTDIM, FRUSTDIM, -FRUSTDIM, FRUSTDIM, FRUSTNEAR, FRUSTFAR);
glMatrixMode(GL_MODELVIEW);
render();
break;
case FIELD:
min = -2;
max = -min + 1;
count = -2 * min + 1;
count *= count;
scale = 2.f;
glClear(GL_ACCUM_BUFFER_BIT);
for(j = min; j < max; j++) {
for(i = min; i < max; i++) {
dx = scale * i * FRUSTNEAR/focus;
dy = scale * j * FRUSTNEAR/focus;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glFrustum(-FRUSTDIM + dx,
FRUSTDIM + dx,
-FRUSTDIM + dy,
FRUSTDIM + dy,
FRUSTNEAR,
FRUSTFAR);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(scale * i, scale * j, 0.f);
render();
glAccum(GL_ACCUM, 1.f/count);
}
}
glAccum(GL_RETURN, 1.f);
break;
}
glutSwapBuffers();
}
/* ARGSUSED1 */
void key(unsigned char key, int x, int y)
{
if(key == '\033')
exit(0);
}
const int TEXDIM = 256;
/* Parse arguments, and set up interface between OpenGL and window system */
int
main(int argc, char *argv[])
{
GLfloat *tex;
static GLfloat lightpos[] = {50.f, 50.f, -320.f, 1.f};
static GLfloat sphere_mat[] = {1.f, .5f, 0.f, 1.f};
static GLfloat cone_mat[] = {0.f, .5f, 1.f, 1.f};
GLUquadricObj *sphere, *cone, *base;
glutInit(&argc, argv);
glutInitWindowSize(512, 512);
glutInitDisplayMode(GLUT_RGBA|GLUT_DEPTH|GLUT_ACCUM|GLUT_DOUBLE);
(void)glutCreateWindow("depth of field");
glutDisplayFunc(redraw);
glutKeyboardFunc(key);
glutCreateMenu(menu);
glutAddMenuEntry("Normal", NONE);
glutAddMenuEntry("Depth of Field", FIELD);
glutAttachMenu(GLUT_RIGHT_BUTTON);
/* turn on features */
glEnable(GL_DEPTH_TEST);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
/* place light 0 in the right place */
glLightfv(GL_LIGHT0, GL_POSITION, lightpos);
/* remove back faces to speed things up */
glCullFace(GL_BACK);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
// glNewList(SPHERE, GL_COMPILE);
/* make display lists for sphere and cone; for efficiency */
sphere = gluNewQuadric();
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, sphere_mat);
gluSphere(sphere, 20.f, 20, 20);
gluDeleteQuadric(sphere);
glEndList();
// glNewList(CONE, GL_COMPILE);
cone = gluNewQuadric();
base = gluNewQuadric();
glRotatef(-90.f, 1.f, 0.f, 0.f);
glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, cone_mat);
gluDisk(base, 0., 20., 20, 1);
gluCylinder(cone, 20., 0., 60., 20, 20);
gluDeleteQuadric(cone);
gluDeleteQuadric(base);
glEndList();
/* load pattern for current 2d texture */
tex = make_texture(TEXDIM, TEXDIM);
glTexImage2D(GL_TEXTURE_2D, 0, 1, TEXDIM, TEXDIM, 0, GL_RED, GL_FLOAT, tex);
free(tex);
glutMainLoop();
return 0; /* ANSI C requires main to return int. */
}
please help..thanks
|
|
|
|
 |
|
|
General News Suggestion Question Bug Answer Joke Rant Admin
|
This Custom AppWizard for VC++ 6.0 or VC++.NET creates an OpenGL enabled Win32 application suitable for demos and simple games.
| Type | Article |
| Licence | |
| First Posted | 26 Jul 2001 |
| Views | 349,391 |
| Bookmarked | 103 times |
|
|