=================================================================== RCS file: /home/cvs/OpenXM/src/cfep/MyOpenGLView.m,v retrieving revision 1.2 retrieving revision 1.7 diff -u -p -r1.2 -r1.7 --- OpenXM/src/cfep/MyOpenGLView.m 2006/03/07 11:15:23 1.2 +++ OpenXM/src/cfep/MyOpenGLView.m 2018/10/18 04:59:45 1.7 @@ -6,10 +6,17 @@ // Copyright 2006 OpenXM.org. All rights reserved. // +#import +#import +#import +#import + #import "MyOpenGLView.h" #import "MyOpenGLController.h" #include "mygl.h" + + @implementation MyOpenGLView -(id) initWithFrame: (NSRect) frame { NSLog(@"initWithFrame\n"); @@ -21,7 +28,7 @@ yeye = 0.0; zeye = 2.0; initGl = 1; - + myfont = [ NSFont systemFontOfSize: 10]; [super initWithFrame: frame]; if (self) { NSOpenGLPixelFormatAttribute attributes[]={ @@ -81,6 +88,7 @@ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); [self drawOglInitComm]; } +-(void) setInitGL: (id) sender { initGl = 1; } // It was for a test. -(void) drawRectSimple: (NSRect) rect withColor: (double) c { glClearColor(1.0,1.0,1.0,1.0); @@ -122,12 +130,34 @@ -(NSMutableArray *)getListOfOglComm { return oglComm; } -(NSMutableArray *)getListOfOglInitComm { return oglInitComm; } +-(int) getOglCommSize { return oglCommSize; } +-(int) getOglInitCommSize { return oglInitCommSize; } -(int) countOfOglComm { return [oglComm count]; } -(int) countOfOglInitComm { return [oglInitComm count];} --(int) removeLastOfOglComm { if ([oglComm count]>0) [oglComm removeLastObject]; return [self countOfOglComm];} --(int) removeLastOfOglInitComm {if ([oglInitComm count]>0) [oglInitComm removeLastObject]; return [self countOfOglInitComm];} --(int) removeAllOfOglComm { if ([oglComm count]>0) [oglComm removeAllObjects]; return 0; } --(int) removeAllOfOglInitComm {if ([oglInitComm count]>0) [oglInitComm removeAllObjects]; return 0; } +-(int) removeLastOfOglComm { if ([oglComm count]>0) [oglComm removeLastObject]; [self updateOglCommSize]; return [self countOfOglComm];} +-(int) removeLastOfOglInitComm {if ([oglInitComm count]>0) [oglInitComm removeLastObject]; [self updateOglInitCommSize]; return [self countOfOglInitComm];} +-(int) removeAllOfOglComm { if ([oglComm count]>0) [oglComm removeAllObjects]; oglCommSize = 0; return 0; } +-(int) removeAllOfOglInitComm {if ([oglInitComm count]>0) [oglInitComm removeAllObjects]; oglInitCommSize = 0; return 0; } +-(void) updateOglCommSize { + int n,i; + MyOpenGLCommand *cc; + n = [oglComm count]; + for (i=n-1; i>=0; i--) { + cc = [oglComm objectAtIndex: i]; + if ([cc isEndGroup]) { oglCommSize = i+1; return ; } + } + oglCommSize = 0; +} +-(void) updateOglInitCommSize { + int n,i; + MyOpenGLCommand *cc; + n = [oglInitComm count]; + for (i=n-1; i>=0; i--) { + cc = [oglInitComm objectAtIndex: i]; + if ([cc isEndGroup]) { oglInitCommSize = i+1; return ; } + } + oglInitCommSize = 0; +} -(void) drawOglInitComm { int i,n; @@ -166,7 +196,7 @@ ii = [gc getI4]; x = v[0]; y = v[1]; z = v[2]; c = v[3]; p = ii[0]; q=ii[1]; r=ii[2]; s=ii[3]; - // NSLog(@"opCode=%d, (x,y,z,c)=(%f,%f,%f,%f), (p,q,r,s)=(%d,%d,%d,%d)\n",op,x,y,z,c,p,q,r,s); +// NSLog(@"opCode=%d, (x,y,z,c)=(%f,%f,%f,%f), (p,q,r,s)=(%d,%d,%d,%d)\n",op,x,y,z,c,p,q,r,s); switch(op) { case CFEPglBegin: glBegin(p); @@ -179,23 +209,35 @@ glClearDepth(x); break; case CFEPglColor4f: glColor4f(x,y,z,c); break; + case CFEPglDisable: + glDisable(p); break; + case CFEPglEnable: + glEnable(p); break; case CFEPglEnd: glEnd(); break; case CFEPglFlush: - glFlush(); [self setNeedsDisplay: YES]; break; + glFlush(); [self setInitGL: nil]; [self setNeedsDisplay: YES]; break; + case CFEPglLineStipple: + glLineStipple(p,q); break; + case CFEPglLineWidth: + glLineWidth(x); break; + case CFEPglNormal3f: + glNormal3f(x,y,z); break; case CFEPglPointSize: glPointSize(x); break; case CFEPglRectf: glRectf(x,y,z,c); break; case CFEPglVertex3f: glVertex3f(x,y,z); break; + case CFEPglVertex2f: + glVertex2f(x,y); break; case CFEPglib_line: glib_line(x,y,z,c,p); break; case CFEPglib_putpixel: glib_putpixel(x,y,p); break; case CFEPglib_flush: - [self setNeedsDisplay: YES]; + [self setInitGL: nil]; [self setNeedsDisplay: YES]; // [[MyOpenGLController getOglWindow: gid] showCount]; break; @@ -225,7 +267,9 @@ -(void) glib3_std_scene0 { glib3_std_scene0(xeye,yeye,zeye); } - +-(void) mouseDown: (NSEvent *) theEvent { + NSLog(@"Mouse is down\n"); +} @end // Original glib functions