Function:ss2ct

From S2PLOT

Jump to: navigation, search

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 <time.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 */

   srand48((long)time(NULL));                   /* Seed random numbers */
   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.


Personal tools