PowerVR Series1

Up QuickStart1 QuickStart2 QuickStart3 QuickStart4 QuickStart5 |  | ### PowerVR SGL Direct Quickstart Tutorial - Step 4
| Some simple animation is easily done by changing the vertex coordinates.
    #include "sgl.h"
    #include "math.h"
    #define RGB(r, g, b) ((sgl_uint32) (((r) << 16) | ((g) << 8) | (b)))

    SGLCONTEXT     SGLContext;
    SGLVERTEX      Vertices[] =	{
    /*                 x      y     z  (1/W)     col       spec.col (u/W) (v/W) */
    	        {  0.0f,240.0f,0.0f,0.1f,RGB(255,0,0),RGB(0,0,0),0.0f,0.0f},
    	    	{320.0f,479.0f,0.0f,0.8f,RGB(255,0,0),RGB(0,0,0),0.0f,0.0f},
    		{639.0f,240.0f,0.0f,0.1f,RGB(255,0,0),RGB(0,0,0),0.0f,0.0f},
    		{320.0f,  0.0f,0.0f,0.8f,RGB(0,255,0),RGB(0,0,0),0.0f,0.0f}
    			        };
    int	       TriFaceData[][3] = {{0,1,2},{3,0,2}};
    int            Device,frame,run;

    void main ()
    {
    	Device = sgl_create_screen_device (0,640,480, sgl_device_16bit, TRUE);
    	if (Device >= 0)
    	{
    	    SGLContext.bFogOn=TRUE;
    	    SGLContext.fFogR=0.5f;
    	    SGLContext.fFogG=0.5f;
    	    SGLContext.fFogB=1.0f;
    	    SGLContext.u32FogDensity=16;
    	    for(run=1; run<5 ; run++)
    	    {
    	      for(frame=1; frame<128; frame++)
    	      {
    		Vertices[0].fX=(64-abs(frame-64))*10.0f-5.0f;
    		Vertices[2].fX=645.0f-(64-abs(frame-64))*10.0f;
    		sgltri_startofframe (&SGLContext);
    		sgltri_triangles    (&SGLContext, 2, TriFaceData, Vertices);
    		sgltri_render       (&SGLContext);
    	      }
               }
| Vertices 0 and 2 are on the left and right border of the screen, respectively. In this loop, we are swapping their on-screen X coordinates gradually and repeat this 10 times
    	    sgl_delete_device(Device);
    	}
    }
You may view this source code. The next step will texture the triangles Click here to see how it's done ... Go to PowerSGL Direct QuickStart Page 1 - 2 - 3 - 5

Confidential / provided under Non-Disclosure Agreement Copyright © 1999-2000, PowerVR Technologies and partners. PowerVR Technologies is a division of Imagination Technologies Limited.