Function:ss2ct
From S2PLOT
(Difference between revisions)
Revision as of 01:16, 30 October 2007
ss2ct
Create a texture with specified width and height
Prototype
unsigned int ss2ct(int width, int height);
Description
Create a texture for the user to fill in as they see fit. Typical use is to call this function, then ss2gt and ss2pt to modify the texture as desired. Function returns the ID of the newly created texture.
See Also
ss2gt | Get a pointer to an identified texture. |
ss2pt | Reinstall a texture. |
ss2dt | Delete a texture |
ss2lt | Load a texture for future (generally repeated) use. |
Code Example
#include <stdio.h>
#include <stdlib.h>
#include "s2plot.h"
int main(int argc, char *argv[])
{
int texid; /* ID for this texture */
char *tex; /* Array holding texture */
int width, height; /* Dimensions of texture */
int i, j; /* Loop variables */
int idx; /* Temporary index into array */
XYZ xyz = { 0.0, 0.0, 0.0 }; /* Location of sphere */
float r = 0.3; /* Radius of sphere */
COLOUR col = { 1.0, 1.0, 1.0 }; /* Colour of sphere */
s2opend("/?",argc, argv); /* Open the display */
s2swin(-1.,1., -1.,1., -1.,1.); /* Set the window coordinates */
s2box("BCDET",0,0,"BCDET",0,0,"BCDET",0,0); /* Draw coordinate box */
width = 128; /* Width of new texture */
height = 16; /* Height of new texture */
texid = ss2ct(width, height); /* Create a new texture */
tex = ss2gt(texid, &width, &height); /* Store texture */
for (j=0;j<height;j++) {
for (i=0;i<width;i++) {
idx = (j*width + i)*4; /* Stored as (r, g, b, alpha) */
tex[idx ] = 127*drand48()+128; /* Randomish Red */
tex[idx+1] = 0; /* Green */
tex[idx+2] = 0; /* Blue */
/* Do nothing to alpha */
}
}
ss2pt(texid); /* Restore texture for use */
ns2vspherex(xyz, r, col, texid); /* Draw textured sphere */
s2show(1); /* Open the s2plot window */
return 1;
}
Back to S2PLOT function list.