home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NeXTSTEP 3.0
/
NeXTSTEP3.0.iso
/
NextDeveloper
/
Headers
/
3Dkit
/
N3DShader.h
< prev
next >
Wrap
Text File
|
1992-07-18
|
2KB
|
77 lines
/*
Copyright (c) 1991, 1992 by NeXT Computer, Inc as an unpublished work.
All rights reserved.
*/
#import <objc/Object.h>
#import <appkit/color.h>
#import <ri/ri.h>
#import <ri/slo.h>
#import <objc/zone.h>
typedef struct {
SLO_VISSYMDEF symb; /* the slo symbol */
union {
float fval;
RtPoint pval;
NXColor cval;
char *sval;
} value; /* the value this arg has */
RtPoint _rgbv;
} SLOArgs;
@interface N3DShader : Object
{
NXColor color; /* expressed as an NXColor until the RiColor call */
float transparency;
char *shader;
SLO_TYPE shaderType;
int shaderArgCount; /* size of following array */
SLOArgs *shaderArgs; /* dynamic a@C of shader args */
NXZone *zone;
/* private stuff */
RtToken *_sTokens;
RtPointer *_sValues;
BOOL _doColor;
RtColor _rgbColor;
RtColor _rgbOpacity;
char *_rsname;
void *_N3Dprivate;
}
- init;
- initWithShader:(const char *)aShader;
- free;
- setShader:(const char *)aShader;
- (const char *)shader;
- setColor:(NXColor)aColor;
- (NXColor)color;
- setUseColor:(BOOL)flag;
- (BOOL)doesUseColor;
- setTransparency:(float)value;
- (float)transparency;
- (int)shaderArgCount;
- (const char *)shaderArgNameAt:(int)i;
- (SLO_TYPE)shaderArgType:(const char *)aName;
- (BOOL)isShaderArg:(const char *)aName;
- (SLO_TYPE)shaderType;
- setShaderArg:(const char *)aName floatValue:(float)fv;
- setShaderArg:(const char *)aName stringValue:(const char *)sv;
- setShaderArg:(const char *)aName pointValue:(RtPoint)pv;
- setShaderArg:(const char *)aName colorValue:(NXColor)cv;
- getShaderArg:(const char *)aName floatValue:(float *)fvp;
- getShaderArg:(const char *)aName stringValue:(const char **)sv;
- getShaderArg:(const char *)aName pointValue:(RtPoint *)pvp;
- getShaderArg:(const char *)aName colorValue:(NXColor *)cvp;
- resetShaderArg:(const char *)aName; /* restores default value */
- set;
- read:(NXTypedStream *)stream;
- write:(NXTypedStream *)stream;
@end