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.