コード例 #1
0
ファイル: screenfx.cpp プロジェクト: aap/skygfx_vc
void
ScreenFX::CreateImmediateModeData(RwCamera *cam, RwRect *rect)
{
	float zero = 0.0f;
	float xmax = rect->w;
	float ymax = rect->h;
	// whatever this is...
	if(RwRasterGetDepth(RwCameraGetRaster(cam)) == 16){
		zero += 0.5f;
		xmax += 0.5f;
		ymax += 0.5f;
	}else{
		zero -= 0.5f;
		xmax -= 0.5f;
		ymax -= 0.5f;
	}
	const float recipz = 1.0f/RwCameraGetNearClipPlane(cam);
	RwIm2DVertexSetScreenX(&screenVertices[0], zero);
	RwIm2DVertexSetScreenY(&screenVertices[0], zero);
	RwIm2DVertexSetScreenZ(&screenVertices[0], RwIm2DGetNearScreenZ());
	RwIm2DVertexSetRecipCameraZ(&screenVertices[0], recipz);
	RwIm2DVertexSetU(&screenVertices[0], 0.0f, recipz);
	RwIm2DVertexSetV(&screenVertices[0], 0.0f, recipz);
	RwIm2DVertexSetIntRGBA(&screenVertices[0], 255, 255, 255, 255);

	RwIm2DVertexSetScreenX(&screenVertices[1], zero);
	RwIm2DVertexSetScreenY(&screenVertices[1], ymax);
	RwIm2DVertexSetScreenZ(&screenVertices[1], RwIm2DGetNearScreenZ());
	RwIm2DVertexSetRecipCameraZ(&screenVertices[1], recipz);
	RwIm2DVertexSetU(&screenVertices[1], 0.0f, recipz);
	RwIm2DVertexSetV(&screenVertices[1], 1.0f, recipz);
	RwIm2DVertexSetIntRGBA(&screenVertices[1], 255, 255, 255, 255);

	RwIm2DVertexSetScreenX(&screenVertices[2], xmax);
	RwIm2DVertexSetScreenY(&screenVertices[2], ymax);
	RwIm2DVertexSetScreenZ(&screenVertices[2], RwIm2DGetNearScreenZ());
	RwIm2DVertexSetRecipCameraZ(&screenVertices[2], recipz);
	RwIm2DVertexSetU(&screenVertices[2], 1.0f, recipz);
	RwIm2DVertexSetV(&screenVertices[2], 1.0f, recipz);
	RwIm2DVertexSetIntRGBA(&screenVertices[2], 255, 255, 255, 255);

	RwIm2DVertexSetScreenX(&screenVertices[3], xmax);
	RwIm2DVertexSetScreenY(&screenVertices[3], zero);
	RwIm2DVertexSetScreenZ(&screenVertices[3], RwIm2DGetNearScreenZ());
	RwIm2DVertexSetRecipCameraZ(&screenVertices[3], recipz);
	RwIm2DVertexSetU(&screenVertices[3], 1.0f, recipz);
	RwIm2DVertexSetV(&screenVertices[3], 0.0f, recipz);
	RwIm2DVertexSetIntRGBA(&screenVertices[3], 255, 255, 255, 255);
}
コード例 #2
0
ファイル: dllmain.cpp プロジェクト: MehdiNejjar/III.VC.GPS
void DrawLine(CVector2D const&a, CVector2D const&b, float width, unsigned int color)
{
	CVector2D point[4], shift[2], dir;
	width /= 2.0;
	dir.x = b.x - a.x;
	dir.y = b.y - a.y;
	float angle = atan2(dir.y, dir.x);
	shift[0].x = cos(angle - 1.5707963f) * width;
	shift[0].y = sin(angle - 1.5707963f) * width;
	shift[1].x = cos(angle + 1.5707963f) * width;
	shift[1].y = sin(angle + 1.5707963f) * width;
	point[0].x = a.x + shift[1].x;
	point[0].y = a.y + shift[1].y;
	point[1].x = b.x + shift[1].x;
	point[1].y = b.y + shift[1].y;
	point[2].x = a.x + shift[0].x;
	point[2].y = a.y + shift[0].y;
	point[3].x = b.x + shift[0].x;
	point[3].y = b.y + shift[0].y;
	float oldZ = RwIm2DGetNearScreenZ();
	RwIm2DSetNearScreenZ(oldZ + *gRadarMapZShift);
	SetSpriteVertices(point[0].x, point[0].y, point[1].x, point[1].y, point[2].x, point[2].y, point[3].x, point[3].y, &color,
		&color, &color, &color);
	RwIm2DSetNearScreenZ(oldZ);
	RwIm2DRenderPrimitive(rwPRIMTYPETRIFAN, gSpriteVertices, 4);
}
コード例 #3
0
ファイル: envmap.cpp プロジェクト: aap/skygfx
static void
MakeScreenQuad(void)
{
	int width = reflectionTex->raster->width;
	int height = reflectionTex->raster->height;
	screenQuad[0].x = 0.0f;
	screenQuad[0].y = 0.0f;
	screenQuad[0].z = RwIm2DGetNearScreenZ();
	screenQuad[0].rhw = 1.0f / reflectionCam->nearPlane;
	screenQuad[0].emissiveColor = 0xFFFFFFFF;
	screenQuad[1].x = 0.0f;
	screenQuad[1].y = height;
	screenQuad[1].z = screenQuad[0].z;
	screenQuad[1].rhw = screenQuad[0].rhw;
	screenQuad[1].emissiveColor = 0xFFFFFFFF;
	screenQuad[2].x = width;
	screenQuad[2].y = height;
	screenQuad[2].z = screenQuad[0].z;
	screenQuad[2].rhw = screenQuad[0].rhw;
	screenQuad[2].emissiveColor = 0xFFFFFFFF;
	screenQuad[3].x = width;
	screenQuad[3].y = 0;
	screenQuad[3].z = screenQuad[0].z;
	screenQuad[3].rhw = screenQuad[0].rhw;
	screenQuad[3].emissiveColor = 0xFFFFFFFF;
	MakeQuadTexCoords(true);
}
コード例 #4
0
ファイル: envmap.cpp プロジェクト: aap/skygfx
static void
AddCorona(float x, float y, float sz)
{
	float nearz, recipz;
	RwIm2DVertex *v;
	nearz = RwIm2DGetNearScreenZ();
	recipz = 1.0f / RwCameraGetNearClipPlane((RwCamera*)RWSRCGLOBAL(curCamera));

	v = &coronaVerts[numCoronaVerts];
	RwIm2DVertexSetScreenX(&v[0], x);
	RwIm2DVertexSetScreenY(&v[0], y);
	RwIm2DVertexSetScreenZ(&v[0], nearz);
	RwIm2DVertexSetRecipCameraZ(&v[0], recipz);
	RwIm2DVertexSetU(&v[0], 0.0f, recipz);
	RwIm2DVertexSetV(&v[0], 0.0f, recipz);
	RwIm2DVertexSetIntRGBA(&v[0], 0xFF, 0xFF, 0xFF, 0xFF);

	RwIm2DVertexSetScreenX(&v[1], x);
	RwIm2DVertexSetScreenY(&v[1], y + sz);
	RwIm2DVertexSetScreenZ(&v[1], nearz);
	RwIm2DVertexSetRecipCameraZ(&v[1], recipz);
	RwIm2DVertexSetU(&v[1], 0.0f, recipz);
	RwIm2DVertexSetV(&v[1], 1.0f, recipz);
	RwIm2DVertexSetIntRGBA(&v[1], 0xFF, 0xFF, 0xFF, 0xFF);

	RwIm2DVertexSetScreenX(&v[2], x + sz);
	RwIm2DVertexSetScreenY(&v[2], y + sz);
	RwIm2DVertexSetScreenZ(&v[2], nearz);
	RwIm2DVertexSetRecipCameraZ(&v[2], recipz);
	RwIm2DVertexSetU(&v[2], 1.0f, recipz);
	RwIm2DVertexSetV(&v[2], 1.0f, recipz);
	RwIm2DVertexSetIntRGBA(&v[2], 0xFF, 0xFF, 0xFF, 0xFF);

	RwIm2DVertexSetScreenX(&v[3], x + sz);
	RwIm2DVertexSetScreenY(&v[3], y);
	RwIm2DVertexSetScreenZ(&v[3], nearz);
	RwIm2DVertexSetRecipCameraZ(&v[3], recipz);
	RwIm2DVertexSetU(&v[3], 1.0f, recipz);
	RwIm2DVertexSetV(&v[3], 0.0f, recipz);
	RwIm2DVertexSetIntRGBA(&v[3], 0xFF, 0xFF, 0xFF, 0xFF);


	coronaIndices[numCoronaIndices++] = numCoronaVerts;
	coronaIndices[numCoronaIndices++] = numCoronaVerts + 1;
	coronaIndices[numCoronaIndices++] = numCoronaVerts + 2;
	coronaIndices[numCoronaIndices++] = numCoronaVerts;
	coronaIndices[numCoronaIndices++] = numCoronaVerts + 2;
	coronaIndices[numCoronaIndices++] = numCoronaVerts + 3;
	numCoronaVerts += 4;
}