version 1.1.1.1, 2006/03/03 23:31:12 |
version 1.5, 2006/03/10 11:48:01 |
|
|
} |
} |
-(void)print { |
-(void)print { |
int i; |
int i; |
NSLog(@"command=%s, opCode=%d, [",command,opCode); |
NSLog(@"command=%@s, opCode=%d, [",command,opCode); |
for (i=0; i<4; i++) NSLog(@"%f,",f4[i]); |
for (i=0; i<4; i++) NSLog(@"%f,",f4[i]); |
NSLog(@"; "); |
NSLog(@"; "); |
for (i=0; i<4; i++) NSLog(@"%d,",i4[i]); |
for (i=0; i<4; i++) NSLog(@"%d,",i4[i]); |
NSLog(@"]\n"); |
NSLog(@"]\n"); |
} |
} |
|
-(NSString *)toString { |
|
return [NSString stringWithFormat: @"%@[%d], %f, %f, %f, %f; %d, %d, %d, %d",command,opCode,f4[0],f4[1],f4[2],f4[3],i4[0],i4[1],i4[2],i4[3]]; |
|
} |
+(MyOpenGLCommand *)allocAndCompile: (NSString *)cmd by: (id) sender { |
+(MyOpenGLCommand *)allocAndCompile: (NSString *)cmd by: (id) sender { |
MyOpenGLCommand *c; |
MyOpenGLCommand *c; |
c=[[MyOpenGLCommand alloc] init]; |
c=[[MyOpenGLCommand alloc] init]; |
|
|
}else if ([s compare: @"glColor4f"] == NSOrderedSame) { |
}else if ([s compare: @"glColor4f"] == NSOrderedSame) { |
opCode = CFEPglColor4f; fargc = 4; iargc = 0; endGroup = NO; |
opCode = CFEPglColor4f; fargc = 4; iargc = 0; endGroup = NO; |
|
|
|
}else if ([s compare: @"glClear"] == NSOrderedSame) { |
|
opCode = CFEPglClear; fargc = 0; iargc = 1; endGroup = YES; |
|
|
|
}else if ([s compare: @"glClearColor"] == NSOrderedSame) { |
|
opCode = CFEPglClearColor; fargc = 4; iargc = 0; endGroup = YES; |
|
|
|
}else if ([s compare: @"glClearDepth"] == NSOrderedSame) { |
|
opCode = CFEPglClearDepth; fargc = 1; iargc = 0; endGroup = YES; |
|
|
|
}else if ([s compare: @"glDisable"] == NSOrderedSame) { |
|
opCode = CFEPglDisable; fargc = 0; iargc = 1; endGroup = YES; |
|
|
|
}else if ([s compare: @"glEnable"] == NSOrderedSame) { |
|
opCode = CFEPglEnable; fargc = 0; iargc = 1; endGroup = YES; |
|
|
}else if ([s compare: @"glEnd"] == NSOrderedSame) { |
}else if ([s compare: @"glEnd"] == NSOrderedSame) { |
opCode = CFEPglEnd; fargc = 0; iargc = 0; endGroup = YES; |
opCode = CFEPglEnd; fargc = 0; iargc = 0; endGroup = YES; |
|
|
|
}else if ([s compare: @"glFlush"] == NSOrderedSame) { |
|
opCode = CFEPglFlush; fargc = 0; iargc = 0; endGroup = YES; |
|
|
|
}else if ([s compare: @"glLineStipple"] == NSOrderedSame) { |
|
opCode = CFEPglLineStipple; fargc = 0; iargc = 2; endGroup = YES; |
|
|
|
}else if ([s compare: @"glLineWidth"] == NSOrderedSame) { |
|
opCode = CFEPglLineWidth; fargc = 1; iargc = 0; endGroup = YES; |
|
|
|
}else if ([s compare: @"glNormal3f"] == NSOrderedSame) { |
|
opCode = CFEPglNormal3f; fargc = 3; iargc = 0; endGroup = YES; |
|
|
|
}else if ([s compare: @"glPointSize"] == NSOrderedSame) { |
|
opCode = CFEPglPointSize; fargc = 1; iargc = 0; endGroup = NO; |
|
|
}else if ([s compare: @"glRectf"] == NSOrderedSame) { |
}else if ([s compare: @"glRectf"] == NSOrderedSame) { |
opCode = CFEPglRectf; fargc = 4; iargc = 0; endGroup = YES; |
opCode = CFEPglRectf; fargc = 4; iargc = 0; endGroup = YES; |
|
|
|
|
return nil; |
return nil; |
} |
} |
// Format glxxxpfqi fargc=p, iargc=q. Example: glxxx4f1i, 0.1,0.2,0.3,0.4,34 |
// Format glxxxpfqi fargc=p, iargc=q. Example: glxxx4f1i, 0.1,0.2,0.3,0.4,34 |
|
command = s; |
|
[command retain]; // bug. How to release? |
if (fargc > 0) { |
if (fargc > 0) { |
for (i=1; i< min(n,fargc+1); i++) { |
for (i=1; i< min(n,fargc+1); i++) { |
x = [a objectAtIndex: i]; |
x = [a objectAtIndex: i]; |
|
|
-(int *) getI4 { return i4; } |
-(int *) getI4 { return i4; } |
-(NSArray *)getArgv { return argv; } |
-(NSArray *)getArgv { return argv; } |
|
|
|
|
@end |
@end |
|
|
/* Code to test MyFloat put in compile: |
/* Code to test MyFloat put in compile: |
Line 279 static int debugMyUtil = 0; |
|
Line 313 static int debugMyUtil = 0; |
|
NSLog(@"mytest=%@\n",[MyUtil arrayOfStringFrom: @" [1, 2,3, 4,5]"]); |
NSLog(@"mytest=%@\n",[MyUtil arrayOfStringFrom: @" [1, 2,3, 4,5]"]); |
NSLog(@"mytest=%@\n",[MyUtil arrayOfStringFrom: @"[[1],2,[[3,[4]]],5]"]); // There is a bug. Output is 1,2,... |
NSLog(@"mytest=%@\n",[MyUtil arrayOfStringFrom: @"[[1],2,[[3,[4]]],5]"]); // There is a bug. Output is 1,2,... |
*/ |
*/ |
|
|
|
+(NSString *)pruneThings: (NSString *)ss { |
|
int n,i, start,end; |
|
unichar c; |
|
unichar s[SMAX]; |
|
NSString *ans; |
|
n = [ss length]; |
|
if (n >= SMAX-1) { |
|
NSLog(@"Too big string for pruneThings.\n"); |
|
return nil; |
|
} |
|
start = 0; end = n-1; |
|
for (i=0; i<n; i++) { |
|
c = [ss characterAtIndex: i]; |
|
start = i; |
|
if (c > 0x20) break; |
|
} |
|
for (i=n-1; i>=0; i--) { |
|
c = [ss characterAtIndex: i]; |
|
end = i; |
|
if (c > 0x20) break; |
|
} |
|
if (start > end) return nil; |
|
for (i=0; i<= end-start ; i++) { |
|
s[i] = [ss characterAtIndex: (start+i)]; |
|
s[i+1] =0; |
|
} |
|
ans = [NSString stringWithCharacters: s length: (end-start+1)]; |
|
return ans; |
|
} |
|
|
|
+(id)attributedStringWithPath: (NSString *)path { |
|
NSFileWrapper *theWrapper; |
|
NSTextAttachment *theAttachment; |
|
NSAttributedString *aStr; |
|
theWrapper = [[NSFileWrapper alloc] initWithPath: path]; |
|
if (!theWrapper) NSLog(@"theWrapper is nil. Path=[%@]\n",path); |
|
if (!theWrapper) return nil; |
|
theAttachment = [[NSTextAttachment alloc] initWithFileWrapper:theWrapper]; |
|
aStr = [NSAttributedString attributedStringWithAttachment:theAttachment]; |
|
return aStr; // How should I do autorelease? |
|
} |
|
|
|
|
@end |
@end |
|
|