Function:ss2ctt

From S2PLOT

(Difference between revisions)
Jump to: navigation, search
Revision as of 00:18, 4 December 2007
S2plot admin (Talk | contribs)

← Previous diff
Current revision
S2plot admin (Talk | contribs)

Line 1: Line 1:
-==s2ctt==+==ss2ctt==
Create a transient texture map. Create a transient texture map.
Line 22: Line 22:
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
 +#include <time.h>
#include "s2plot.h" #include "s2plot.h"
Line 35: Line 36:
COLOUR col = { 1.0, 1.0, 1.0 }; /* Colour 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 */ s2opend("/?",argc, argv); /* Open the display */
s2swin(-1.,1., -1.,1., -1.,1.); /* Set the window coordinates */ s2swin(-1.,1., -1.,1., -1.,1.); /* Set the window coordinates */
Line 44: Line 46:
tex = ss2gt(texid, &width, &height); /* Store texture */ tex = ss2gt(texid, &width, &height); /* Store texture */
- for (j=0;j<height;j++) {+ for (j=0;j<height;j++) {
for (i=0;i<width;i++) { for (i=0;i<width;i++) {
idx = (j*width + i)*4; /* Stored as (r, g, b, alpha) */ idx = (j*width + i)*4; /* Stored as (r, g, b, alpha) */
Line 53: Line 55:
} }
} }
- +
ss2ptt(texid); /* Restore transient texture */ ss2ptt(texid); /* Restore transient texture */
ns2vspherex(xyz, r, col, texid); /* Draw textured sphere */ ns2vspherex(xyz, r, col, texid); /* Draw textured sphere */
s2show(1); /* Open the s2plot window */ s2show(1); /* Open the s2plot window */
- +
return 1; return 1;
} }
 +
</pre></code> </pre></code>
[[S2PLOT:Function List | Back]] to S2PLOT function list. [[S2PLOT:Function List | Back]] to S2PLOT function list.
__NOTOC__ __NOTOC__
__NOEDITSECTION__ __NOEDITSECTION__

Current revision

ss2ctt

Create a transient texture map.

Prototype

unsigned int ss2ctt(int width, int height);

Description

Create a texture as per ss2ct, but texture is for "transient" use: this means the texture is much faster to create, but multi-resolution versions are not constructed/used.

See Also

ss2ctCreate texture with specified height and width.
ss2ptReinstall a texture.
ss2pttReinstall a transient texture.

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 = ss2ctt(width, height);       /* Create transient 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 */
      }
   }
   
   ss2ptt(texid);                       /* Restore transient texture */
   ns2vspherex(xyz, r, col, texid);     /* Draw textured sphere */

   s2show(1);                           /* Open the s2plot window */
   
   return 1;
}

Back to S2PLOT function list.


Personal tools