networking
This commit is contained in:
70
external/steamworks/steamworksexample/StarField.cpp
vendored
Normal file
70
external/steamworks/steamworksexample/StarField.cpp
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
//========= Copyright <20> 1996-2008, Valve LLC, All rights reserved. ============
|
||||
//
|
||||
// Purpose: Class for rendering the starfield
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================
|
||||
|
||||
#include "stdafx.h"
|
||||
#include "StarField.h"
|
||||
#include "stdlib.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Constructor
|
||||
//-----------------------------------------------------------------------------
|
||||
CStarField::CStarField( IGameEngine *pGameEngine )
|
||||
{
|
||||
m_pGameEngine = pGameEngine;
|
||||
|
||||
Init();
|
||||
}
|
||||
|
||||
void CStarField::Init()
|
||||
{
|
||||
StarVertex_t StarVertex;
|
||||
m_nWidth = m_pGameEngine->GetViewportWidth();
|
||||
m_nHeight = m_pGameEngine->GetViewportHeight();
|
||||
|
||||
m_VecStars.clear();
|
||||
|
||||
// Generate star field data
|
||||
for( int i=0; i < STARFIELD_STAR_COUNT; ++i )
|
||||
{
|
||||
int32 nRand = (rand()%(255-50))+50; //value between 50 and 255 for shades of gray
|
||||
StarVertex.color = D3DCOLOR_ARGB( 255, nRand, nRand, nRand );
|
||||
|
||||
StarVertex.x = (float)(rand()%m_nWidth);
|
||||
StarVertex.y = (float)(rand()%m_nHeight);
|
||||
|
||||
m_VecStars.push_back( StarVertex );
|
||||
|
||||
// bugbug jmccaskey - sometimes make "big stars" which are 4 points right next to each other?
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Render the star field
|
||||
//-----------------------------------------------------------------------------
|
||||
void CStarField::Render()
|
||||
{
|
||||
if ( ( m_pGameEngine->GetViewportWidth() != m_nWidth ) || ( m_pGameEngine->GetViewportHeight() != m_nHeight ) )
|
||||
{
|
||||
Init();
|
||||
}
|
||||
|
||||
static int counter; // per starfield draw..
|
||||
counter++;
|
||||
|
||||
for( size_t i = 0; i < m_VecStars.size(); ++i )
|
||||
{
|
||||
float x = m_VecStars[i].x;
|
||||
float y = m_VecStars[i].y;
|
||||
float scoot = (float)counter * (float)(m_VecStars[i].color & 0xFF) / (4.0f * 255.0f);
|
||||
float newy = y - scoot; // make things float up
|
||||
while( newy < 0.0f ) newy += m_nHeight; // keep it on screen
|
||||
|
||||
m_pGameEngine->BDrawPoint( x, newy, m_VecStars[i].color );
|
||||
}
|
||||
|
||||
m_pGameEngine->BFlushPointBuffer();
|
||||
}
|
||||
Reference in New Issue
Block a user