hrev43966 adds 6 changesets to branch 'master' old head: 3ea5972eb53695826f2901be1d9027d5b979f2f9 new head: 7d0f6bd08c6a85222ceb55f49abb1ba805a91e05 ---------------------------------------------------------------------------- 0b4c562: screen_savers: Initial import of GLife * Donated to Haiku by author (Aaron Hill) under the MIT license. * Resources conveted to rdef * Headers cleaned up * Jamfile created 51f9263: glife: Pass const char* for name vs char* * Upgrades to Mesa vs Be BGLView 9339eb2: glife: Enable in Jamfiles / build system 3c94b5c: glife: Rename *.hpp to *.h 8bc51be: glife: Initial style cleanup 7d0f6bd: Merge branch 'glife' [ Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> ] ---------------------------------------------------------------------------- 12 files changed, 840 insertions(+), 0 deletions(-) src/add-ons/screen_savers/Jamfile | 1 + src/add-ons/screen_savers/glife/GLife.rdef | 69 +++++++ src/add-ons/screen_savers/glife/GLifeConfig.cpp | 111 +++++++++++ src/add-ons/screen_savers/glife/GLifeConfig.h | 46 +++++ src/add-ons/screen_savers/glife/GLifeGrid.cpp | 90 +++++++++ src/add-ons/screen_savers/glife/GLifeGrid.h | 36 ++++ src/add-ons/screen_savers/glife/GLifeSaver.cpp | 114 +++++++++++ src/add-ons/screen_savers/glife/GLifeSaver.h | 48 +++++ src/add-ons/screen_savers/glife/GLifeState.h | 64 +++++++ src/add-ons/screen_savers/glife/GLifeView.cpp | 188 +++++++++++++++++++ src/add-ons/screen_savers/glife/GLifeView.h | 37 ++++ src/add-ons/screen_savers/glife/Jamfile | 36 ++++ ############################################################################ Commit: 0b4c5624c6489a344c23e8f203f2897f8639aa1d URL: http://cgit.haiku-os.org/haiku/commit/?id=0b4c562 Author: Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> Date: Sun Apr 1 15:28:59 2012 UTC screen_savers: Initial import of GLife * Donated to Haiku by author (Aaron Hill) under the MIT license. * Resources conveted to rdef * Headers cleaned up * Jamfile created ---------------------------------------------------------------------------- diff --git a/src/add-ons/screen_savers/Jamfile b/src/add-ons/screen_savers/Jamfile index 0564ffc..edb42c6 100644 --- a/src/add-ons/screen_savers/Jamfile +++ b/src/add-ons/screen_savers/Jamfile @@ -3,6 +3,7 @@ SubDir HAIKU_TOP src add-ons screen_savers ; SubInclude HAIKU_TOP src add-ons screen_savers butterfly ; SubInclude HAIKU_TOP src add-ons screen_savers debugnow ; SubInclude HAIKU_TOP src add-ons screen_savers flurry ; +#SubInclude HAIKU_TOP src add-ons screen_savers glife ; SubInclude HAIKU_TOP src add-ons screen_savers haiku ; SubInclude HAIKU_TOP src add-ons screen_savers icons ; SubInclude HAIKU_TOP src add-ons screen_savers ifs ; diff --git a/src/add-ons/screen_savers/glife/GLife.rdef b/src/add-ons/screen_savers/glife/GLife.rdef new file mode 100644 index 0000000..be55c63 --- /dev/null +++ b/src/add-ons/screen_savers/glife/GLife.rdef @@ -0,0 +1,69 @@ + +resource app_signature "application/x-vnd.Haiku-GLifeScreensaver"; + +resource app_name_catalog_entry "x-vnd.Haiku-GLifeScreensaver:System name:GLife"; + +resource app_version { + major = 1, + middle = 0, + minor = 0, + variety = 0, + internal = 0, + short_info = "1.0.0", + long_info = "A GL 'Game of Life' Screensaver" +}; + + +resource large_icon array { + $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000FFFFFF" + $"FFFFFFFF3939FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFF00FFFF" + $"FFFFFF3934343939FFFFFFFFFFFFFFFFFFFFFFFF00FF000000FFFFFFFFFF00FF" + $"FFFF3934343434343939FFFFFFFFFFFFFFFFFFFF00FFFFFF00FF000000FF00FF" + $"FF393434343434349FDF3939FFFFFFFFFFFFFFFF00FFFF00FFFFFFFF00FF00FF" + $"394F34343434349F9F3934343939FFFFFFFFFFFF00FF000000FFFF00FFFF00FF" + $"39374F4F34349F9F3934343434343939FFFFFFFF00FFFFFFFFFF000000FF00FF" + $"393737374F9F9F393434343434349FDFFFFFFFFFFF00FFFFFFFFFFFFFFFF00FF" + $"39373737379F394F34343434349F9FDFFFFFFFFFFFFF00000000000000FF00FF" + $"39393737379F39374F4F34349F9F9FDFFFFFFFFFFFFFFFFFFFFFFFFFFF0000FF" + $"FFFF3939379F393737374F9F9F9F9FDFFFFFFFFFFFFF3939FFFFFFFFFFFF00FF" + $"FFFFFFFF39DF39373737379F9F9FDFFFFFFFFFFFFF3934343939FFFFFFFFFFFF" + $"FFFFFF39343439393737379F9FDFFFFF3939FFFF3934343434343939FFFFFFFF" + $"FFFF3934343434343939379FDFFFFF39343439393434343434349FDFFFFFFFFF" + $"FF393434343434349FDF39DFFFFF39343434394F34343434349F9FDFFFFFFFFF" + $"394F34343434349F9F393434FF393434343439374F4F34349F9F9FDFFFFFFFFF" + $"39374F4F34349F9F39343434394F34343434393737374F9F9F9F9FDFFFFFFFFF" + $"393737374F9F9F393434343439374F4F343439373737379F9F9FDFDFFFFFFFFF" + $"39373737379F394F34343434393737374F9F39393737379F9FDF9FDFFFFFFFFF" + $"39393737379F39374F4F343439373737379F39373939379FDF9F9FDFFFFFFFFF" + $"FFFF3939379F393737374F9F39393737379F3937373739DF9F9F9FDFFFFFFFFF" + $"FFFFFFFF39DF39373737379F9F9F3939379F393737374F9F9F9F9FDF10FFFFFF" + $"FFFFFFFFFFFF39393737379F9FDF101039DF39373737379F9F9FDFDF101010FF" + $"FFFFFFFFFFFFFFFF3939379FDF1010FFFFFF39393737379F9FDF9FDF10101010" + $"FFFFFFFFFFFFFFFFFFFF39DF1010FFFFFFFF39373939379FDF9F9FDF10101010" + $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3937373739DF9F9F9FDF101010FF" + $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF393737374F9F9F9F9FDF1010FFFF" + $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39373737379F9F9FDF1010FFFFFF" + $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39393737379F9FDF1010FFFFFFFF" + $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3939379FDF1010FFFFFFFFFF" + $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39DF1010FFFFFFFFFFFF" +}; + +resource mini_icon array { + $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + $"FFFFFFFFFFFFFFFF000000FFFFFFFFFF" + $"FFFFFFFFFFFFFFFFFFFF00FF000000FF" + $"FFFFFFFFFFFFFFFFFF00FFFFFFFF00FF" + $"FFFFFFFFFFFFFFFF000000FFFF00FFFF" + $"FFFFFFFF3939FFFFFFFFFFFF000000FF" + $"FFFFFF3934343939FFFFFFFFFFFFFFFF" + $"FFFF3934343434343939FFFFFFFFFFFF" + $"FF393434343434349FDFFFFFFFFFFFFF" + $"394F34343434349F9FDF10FFFFFFFFFF" + $"39374F4F34349F9F9FDF1010FFFFFFFF" + $"393737374F9F9F9F9FDF1010FFFFFFFF" + $"39373737379F9F9FDF1010FFFFFFFFFF" + $"39393737379F9FDF1010FFFFFFFFFFFF" + $"FFFF3939379FDF1010FFFFFFFFFFFFFF" + $"FFFFFFFF39DF1010FFFFFFFFFFFFFFFF" +}; diff --git a/src/add-ons/screen_savers/glife/GLifeConfig.cpp b/src/add-ons/screen_savers/glife/GLifeConfig.cpp new file mode 100644 index 0000000..1498015 --- /dev/null +++ b/src/add-ons/screen_savers/glife/GLifeConfig.cpp @@ -0,0 +1,110 @@ +/* + * Copyright 2012, Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Aaron Hill <serac@xxxxxxxxxxxxxxx> + */ + + +#include <stdio.h> +#include <Slider.h> +#include <StringView.h> +#include <View.h> + +#include "GLifeState.hpp" +#include "GLifeConfig.hpp" + + +// ------------------------------------------------------ +// GLifeConfig Class Constructor Definition +GLifeConfig::GLifeConfig( BRect rFrame, GLifeState* pglsState ) + : BView( rFrame, "", B_FOLLOW_NONE, B_WILL_DRAW ), + m_pglsState( pglsState ) +{ + // Static Labels + AddChild( new BStringView( BRect(10, 0, 240, 12), B_EMPTY_STRING, + "Open GL \"Game of Life\" Screen Saver" ) ); + AddChild( new BStringView( BRect(16, 14, 240, 26), B_EMPTY_STRING, + "by Aaron Hill" ) ); + + // Sliders + m_pbsGridWidth = new BSlider( BRect(10, 34, 234, 84), "GridWidth", + "Width of Grid : ", + new BMessage( e_midGridWidth ), + 10, 100, B_BLOCK_THUMB ); + m_pbsGridWidth->SetHashMarks( B_HASH_MARKS_BOTTOM ); + m_pbsGridWidth->SetLimitLabels( "10", "100" ); + m_pbsGridWidth->SetValue( pglsState->GridWidth() ); + m_pbsGridWidth->SetHashMarkCount( 10 ); + AddChild( m_pbsGridWidth ); + + m_pbsGridHeight = new BSlider( BRect(10, 86, 234, 136), "GridHeight", + "Height of Grid : ", + new BMessage( e_midGridHeight ), + 10, 100, B_BLOCK_THUMB ); + m_pbsGridHeight->SetHashMarks( B_HASH_MARKS_BOTTOM ); + m_pbsGridHeight->SetLimitLabels( "10", "100" ); + m_pbsGridHeight->SetValue( pglsState->GridHeight() ); + m_pbsGridHeight->SetHashMarkCount( 10 ); + AddChild( m_pbsGridHeight ); + + m_pbsBorder = new BSlider( BRect(10, 138, 234, 188), "Border", + "Overlap Border : ", + new BMessage( e_midBorder ), + 0, 10, B_BLOCK_THUMB ); + m_pbsBorder->SetHashMarks( B_HASH_MARKS_BOTTOM ); + m_pbsBorder->SetLimitLabels( "0", "10" ); + m_pbsBorder->SetValue( pglsState->Border() ); + m_pbsBorder->SetHashMarkCount( 11 ); + AddChild( m_pbsBorder ); +} + +// ------------------------------------------------------ +// GLifeConfig Class AttachedToWindow Definition +void GLifeConfig::AttachedToWindow( void ) +{ + SetViewColor( ui_color( B_PANEL_BACKGROUND_COLOR ) ); + + m_pbsGridWidth->SetTarget( this ); + m_pbsGridHeight->SetTarget( this ); + m_pbsBorder->SetTarget( this ); + +#ifdef _USE_ASYNCHRONOUS + + m_uiWindowFlags = Window()->Flags(); + Window()->SetFlags( m_uiWindowFlags | B_ASYNCHRONOUS_CONTROLS ); + +#endif +} + +// ------------------------------------------------------ +// GLifeConfig Class MessageReceived Definition +void GLifeConfig::MessageReceived( BMessage* pbmMessage ) +{ + char szNewLabel[64]; + int32 iValue; + + switch( pbmMessage->what ) + { + case e_midGridWidth: + m_pglsState->GridWidth() = ( iValue = m_pbsGridWidth->Value() ); + sprintf( szNewLabel, "Width of Grid : %li", iValue ); + m_pbsGridWidth->SetLabel( szNewLabel ); + break; + case e_midGridHeight: + m_pglsState->GridHeight() = ( iValue = m_pbsGridHeight->Value() ); + sprintf( szNewLabel, "Height of Grid : %li", iValue ); + m_pbsGridHeight->SetLabel( szNewLabel ); + break; + case e_midBorder: + m_pglsState->Border() = ( iValue = m_pbsBorder->Value() ); + sprintf( szNewLabel, "Overlap Border : %li", iValue ); + m_pbsBorder->SetLabel( szNewLabel ); + break; + + default: + BView::MessageReceived( pbmMessage ); + break; + } +} diff --git a/src/add-ons/screen_savers/glife/GLifeConfig.hpp b/src/add-ons/screen_savers/glife/GLifeConfig.hpp new file mode 100644 index 0000000..baff361 --- /dev/null +++ b/src/add-ons/screen_savers/glife/GLifeConfig.hpp @@ -0,0 +1,45 @@ +/* + * Copyright 2012, Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Aaron Hill <serac@xxxxxxxxxxxxxxx> + */ +#ifndef _GLIFE_GLIFECONFIG_HPP +#define _GLIFE_GLIFECONFIG_HPP + + +#include <Slider.h> +#include <View.h> + +#include "GLifeState.hpp" + + +// Message IDs +enum { + e_midGridWidth = 'grdw', + e_midGridHeight = 'grdh', + e_midBorder = 'bord' +}; + + +// GLifeConfig Class Declaration +class GLifeConfig : public BView +{ +private: + GLifeState* m_pglsState; + + uint32 m_uiWindowFlags; + + BSlider* m_pbsGridWidth; + BSlider* m_pbsGridHeight; + BSlider* m_pbsBorder; + +public: + GLifeConfig( BRect, GLifeState* ); + + void AttachedToWindow( void ); + void MessageReceived( BMessage* ); +}; + +#endif /* _GLIFE_GLIFECONFIG_HPP */ diff --git a/src/add-ons/screen_savers/glife/GLifeGrid.cpp b/src/add-ons/screen_savers/glife/GLifeGrid.cpp new file mode 100644 index 0000000..44dd5fc --- /dev/null +++ b/src/add-ons/screen_savers/glife/GLifeGrid.cpp @@ -0,0 +1,86 @@ +/* + * Copyright 2012, Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Aaron Hill <serac@xxxxxxxxxxxxxxx> + */ + + +#include <math.h> +#include <stdlib.h> +#include <SupportDefs.h> + +#include "GLifeGrid.hpp" + + +// ------------------------------------------------------ +// GLifeGrid Class Neighbors Definition +inline int32 GLifeGrid::Neighbors( int32 iRow, int32 iColumn ) +{ + return ( Occupied( iRow - 1, iColumn - 1 ) ? 1 : 0 ) + + ( Occupied( iRow - 1, iColumn ) ? 1 : 0 ) + + ( Occupied( iRow - 1, iColumn + 1 ) ? 1 : 0 ) + + ( Occupied( iRow , iColumn - 1 ) ? 1 : 0 ) + + ( Occupied( iRow , iColumn + 1 ) ? 1 : 0 ) + + ( Occupied( iRow + 1, iColumn - 1 ) ? 1 : 0 ) + + ( Occupied( iRow + 1, iColumn ) ? 1 : 0 ) + + ( Occupied( iRow + 1, iColumn + 1 ) ? 1 : 0 ); +} + +// ------------------------------------------------------ +// GLifeGrid Class Constructor Definition +GLifeGrid::GLifeGrid( int32 iWidth, int32 iHeight ) + : m_iWidth( iWidth ), m_iHeight( iHeight ) +{ + m_pbGrid = new bool[iWidth * iHeight]; + + // Randomize new grid + for( int32 iRow = 0; iRow < iHeight; ++iRow ) + { + for( int32 iColumn = 0; iColumn < iWidth; ++iColumn ) + { + // TODO: Allow for customized randomization level + m_pbGrid[ ( iRow * iWidth ) + iColumn ] = ( (rand() % 6 ) == 0 ); + } + } +} + +// ------------------------------------------------------ +// GLifeGrid Class Destructor Definition +GLifeGrid::~GLifeGrid( void ) +{ + delete m_pbGrid; +} + +// ------------------------------------------------------ +// GLifeGrid Class Generation Definition +void GLifeGrid::Generation( void ) +{ + bool* pbTemp = new bool[m_iWidth * m_iHeight]; + + for( int32 iRow = 0; iRow < m_iHeight; ++iRow ) + { + for( int32 iColumn = 0; iColumn < m_iWidth; ++iColumn ) + { + int32 iNum = Neighbors( iRow, iColumn ); + pbTemp[ ( iRow * m_iWidth ) + iColumn ] = + ( ( iNum == 3 ) || + ( Occupied( iRow, iColumn ) && iNum >= 2 && iNum <= 3 ) ); + } + } + + // Swap grids + delete m_pbGrid; + m_pbGrid = pbTemp; +} + +// ------------------------------------------------------ +// GLifeGrid Class Occupied Definition +bool GLifeGrid::Occupied( int32 iRow, int32 iColumn ) +{ + int32 iNewRow = ( iRow % m_iHeight ), iNewColumn = ( iColumn % m_iWidth ); + while( iNewRow < 0 ) iNewRow += m_iHeight; + while( iNewColumn < 0 ) iNewColumn += m_iWidth; + return m_pbGrid[ ( iNewRow * m_iWidth ) + iNewColumn ]; +} \ No newline at end of file diff --git a/src/add-ons/screen_savers/glife/GLifeGrid.hpp b/src/add-ons/screen_savers/glife/GLifeGrid.hpp new file mode 100644 index 0000000..3d0441d --- /dev/null +++ b/src/add-ons/screen_savers/glife/GLifeGrid.hpp @@ -0,0 +1,32 @@ +/* + * Copyright 2012, Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Aaron Hill <serac@xxxxxxxxxxxxxxx> + */ +#ifndef _GLIFE_GLIFEGRID_HPP +#define _GLIFE_GLIFEGRID_HPP + + +// GLifeGrid Class Declaration +class GLifeGrid +{ +private: + bool* m_pbGrid; + int32 m_iWidth; + int32 m_iHeight; + + int32 Neighbors( int32, int32 ); + +public: + // Constructor & Destructor + GLifeGrid( int32, int32 ); + ~GLifeGrid( void ); + // Public Methods + void Generation( void ); + // Accessor Methods + bool Occupied( int32, int32 ); +}; + +#endif /* _GLIFE_GLIFEGRID_HPP */ \ No newline at end of file diff --git a/src/add-ons/screen_savers/glife/GLifeSaver.cpp b/src/add-ons/screen_savers/glife/GLifeSaver.cpp new file mode 100644 index 0000000..10eb0d1 --- /dev/null +++ b/src/add-ons/screen_savers/glife/GLifeSaver.cpp @@ -0,0 +1,113 @@ +/* + * Copyright 2012, Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Aaron Hill <serac@xxxxxxxxxxxxxxx> + */ + + +#include <stdio.h> +#include <stdlib.h> +#include <GLView.h> +#include <ScreenSaver.h> +#include <View.h> + +#include "GLifeGrid.hpp" +#include "GLifeState.hpp" +#include "GLifeConfig.hpp" +#include "GLifeView.hpp" +#include "GLifeSaver.hpp" + +// ------------------------------------------------------ +// GLifeSaver Class Constructor Definition +GLifeSaver::GLifeSaver( BMessage* pbmPrefs, image_id iidImage ) + : BScreenSaver( pbmPrefs, iidImage ) +{ + // Check for preferences + if ( !( pbmPrefs->IsEmpty() ) ) + RestoreState( pbmPrefs ); + + // Seed random number generator + srandom( system_time() ); +} + +// ------------------------------------------------------ +// GLifeSaver Class SaveState Definition +status_t GLifeSaver::SaveState( BMessage* pbmPrefs ) const +{ + return m_glsState.SaveState( pbmPrefs ); +} + +// ------------------------------------------------------ +// GLifeSaver Class RestoreState Definition +void GLifeSaver::RestoreState( BMessage* pbmPrefs ) +{ + m_glsState.RestoreState( pbmPrefs ); +} + +// ------------------------------------------------------ +// GLifeSaver Class StartConfig Definition +void GLifeSaver::StartConfig( BView* pbvView ) +{ + // Setup the "config" class + GLifeConfig* pglcConfig = new GLifeConfig( pbvView->Bounds(), + &m_glsState ); + pbvView->AddChild( pglcConfig ); +} + +// ------------------------------------------------------ +// GLifeSaver Class StartSaver Definition +status_t GLifeSaver::StartSaver( BView* pbvView, bool bPreview ) +{ + if ( bPreview ) + { + // We do not use the preview option + m_pglvViewport = 0; + return B_ERROR; + } + else + { + SetTickSize( c_iTickSize ); + + m_pglvViewport = new GLifeView( pbvView->Bounds(), + "GLifeView", + B_FOLLOW_NONE, + BGL_RGB | BGL_DEPTH | BGL_DOUBLE, + &m_glsState ); + pbvView->AddChild( m_pglvViewport ); + + return B_OK; + } +} + +// ------------------------------------------------------ +// GLifeSaver Class StopSaver Definition +void GLifeSaver::StopSaver( void ) +{ + if ( m_pglvViewport ) + m_pglvViewport->EnableDirectMode( false ); +} + +// ------------------------------------------------------ +// GLifeSaver Class DirectConnected Definition +void GLifeSaver::DirectConnected( direct_buffer_info* pdbiInfo ) +{ + m_pglvViewport->DirectConnected( pdbiInfo ); + m_pglvViewport->EnableDirectMode( true ); +} + +// ------------------------------------------------------ +// GLifeSaver Class DirectDraw Definition +void GLifeSaver::DirectDraw( int32 iFrame ) +{ + m_pglvViewport->Advance(); +} + +// ------------------------------------------------------ +// Main Instantiation Function +extern "C" _EXPORT BScreenSaver* +instantiate_screen_saver( BMessage* pbmPrefs, image_id iidImage ) +{ + return new GLifeSaver( pbmPrefs, iidImage ); +} diff --git a/src/add-ons/screen_savers/glife/GLifeSaver.hpp b/src/add-ons/screen_savers/glife/GLifeSaver.hpp new file mode 100644 index 0000000..36c8354 --- /dev/null +++ b/src/add-ons/screen_savers/glife/GLifeSaver.hpp @@ -0,0 +1,48 @@ +/* + * Copyright 2012, Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Aaron Hill <serac@xxxxxxxxxxxxxxx> + */ +#ifndef _GLIFE_GLIFESAVER_HPP +#define _GLIFE_GLIFESAVER_HPP + + +// Required Includes +// #include <ScreenSaver.h> +// #include <View.h> + + +// Constants +const int32 c_iTickSize = 50000; + + +// GLifeSaver Class Declaration +class GLifeSaver : public BScreenSaver +{ +private: + GLifeState m_glsState; + + GLifeView* m_pglvViewport; + +public: + // Constructor + GLifeSaver( BMessage*, image_id ); + + // State/Preferences Methods + status_t SaveState( BMessage* ) const; + void RestoreState( BMessage* ); + void StartConfig( BView* ); + + // Start/Stop Methods + status_t StartSaver( BView*, bool ); + void StopSaver( void ); + + // Graphics Methods + void DirectConnected( direct_buffer_info* ); + void DirectDraw( int32 ); +}; + + +#endif /* _GLIFE_GLIFESAVER_HPP */ diff --git a/src/add-ons/screen_savers/glife/GLifeState.hpp b/src/add-ons/screen_savers/glife/GLifeState.hpp new file mode 100644 index 0000000..fc64f55 --- /dev/null +++ b/src/add-ons/screen_savers/glife/GLifeState.hpp @@ -0,0 +1,63 @@ +/* + * Copyright 2012, Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Aaron Hill <serac@xxxxxxxxxxxxxxx> + */ +#ifndef _GLIFE_GLIFESTATE_HPP +#define _GLIFE_GLIFESTATE_HPP + + +// Constants +const int32 c_iDefGridWidth = 60; +const int32 c_iDefGridHeight = 40; +const int32 c_iDefBorder = 0; + +// GLifeState Class Declaration & Definition +class GLifeState +{ +private: + int32 m_iGridWidth; + int32 m_iGridHeight; + int32 m_iBorder; + +public: + // Constructor + GLifeState( void ) : m_iGridWidth(c_iDefGridWidth), + m_iGridHeight(c_iDefGridHeight), + m_iBorder(c_iDefBorder) { }; + + // Save/Restore State Methods + status_t SaveState( BMessage* pbmPrefs ) const + { + // Store current preferences + pbmPrefs->AddInt32( "m_iGridWidth", m_iGridWidth ); + pbmPrefs->AddInt32( "m_iGridHeight", m_iGridHeight ); + pbmPrefs->AddInt32( "m_iBorder", m_iBorder ); + + return B_OK; + }; + + void RestoreState( BMessage* pbmPrefs ) + { + // Retrieve preferences, substituting defaults + if ( pbmPrefs->FindInt32( "m_iGridWidth", + &m_iGridWidth ) != B_OK ) + m_iGridWidth = c_iDefGridWidth; + if ( pbmPrefs->FindInt32( "m_iGridHeight", + &m_iGridHeight ) != B_OK ) + m_iGridHeight = c_iDefGridHeight; + if ( pbmPrefs->FindInt32( "m_iBorder", + &m_iBorder ) != B_OK ) + m_iBorder = c_iDefBorder; + }; + + // Accessor Methods + int32& GridWidth( void ) { return m_iGridWidth; }; + int32& GridHeight( void ) { return m_iGridHeight; }; + int32& Border( void ) { return m_iBorder; }; +}; + + +#endif /* _GLIFE_GLIFESTATE_HPP */ diff --git a/src/add-ons/screen_savers/glife/GLifeView.cpp b/src/add-ons/screen_savers/glife/GLifeView.cpp new file mode 100644 index 0000000..f23a6f2 --- /dev/null +++ b/src/add-ons/screen_savers/glife/GLifeView.cpp @@ -0,0 +1,184 @@ +/* + * Copyright 2012, Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Aaron Hill <serac@xxxxxxxxxxxxxxx> + */ + + +#include <math.h> +#include <stdlib.h> +#include <GL/glu.h> +#include <GLView.h> + +#include "GLifeGrid.hpp" +#include "GLifeState.hpp" +#include "GLifeView.hpp" + + +// ------------------------------------------------------ +// GLifeView Class Constructor Definition +GLifeView::GLifeView(BRect rect, char* name, ulong resizingMode, + ulong options, GLifeState* pglsState) + : + BGLView(rect, name, resizingMode, 0, options), + m_pglsState(pglsState) +{ + // Setup the grid + m_pglgGrid = new GLifeGrid( pglsState->GridWidth(), pglsState->GridHeight() ); + + LockGL(); + + glClearDepth( 1.0 ); + glDepthFunc( GL_LESS ); + glEnable( GL_DEPTH_TEST ); + + glEnable( GL_BLEND ); + glBlendFunc( GL_SRC_ALPHA, GL_ONE ); +#if 0 + glShadeModel( GL_SMOOTH ); +#endif + glMatrixMode( GL_PROJECTION ); + glLoadIdentity(); + gluPerspective( 45.0, rect.Width() / rect.Height(), 2.0, 20000.0 ); + glTranslatef( 0.0, 0.0, -50.0 ); + glMatrixMode( GL_MODELVIEW ); + + glPolygonMode( GL_FRONT_AND_BACK, GL_FILL ); + + UnlockGL(); +} + +// ------------------------------------------------------ +// GLifeView Class Destructor Definition +GLifeView::~GLifeView( void ) +{ + delete m_pglgGrid; +} + +// ------------------------------------------------------ +// GLifeView Class AttachedToWindow Definition +void GLifeView::AttachedToWindow( void ) +{ + LockGL(); + BGLView::AttachedToWindow(); + UnlockGL(); +} + +// ------------------------------------------------------ +// GLifeView Class Draw Definition +void GLifeView::Draw(BRect updateRect) +{ + glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); + + // TODO: Dynamic colors or user-specified coloring + GLfloat glfGreen[] = { 0.05, 0.8, 0.15, 1.0 }; + GLfloat glfOrange[] = { 0.65, 0.3, 0.05, 1.0 }; + + // Border control + bool bColor; + + int32 iWidth = m_pglsState->GridWidth(); + int32 iHeight = m_pglsState->GridHeight(); + int32 iBorder = m_pglsState->Border(); + + glPushMatrix(); + + glRotatef( m_glfDelta * 3, 1.0, 0.0, 0.0 ); + glRotatef( m_glfDelta * 1, 0.0, 0.0, 1.0 ); + glRotatef( m_glfDelta * 2, 0.0, 1.0, 0.0 ); + + for( int32 iRow = ( 0 - iBorder ); iRow < ( iHeight + iBorder ); ++iRow ) + { + GLfloat glfY = (GLfloat) iRow - ( (GLfloat) iHeight / 2 ); + + for( int32 iColumn = ( 0 - iBorder ); iColumn < ( iWidth + iBorder ); ++iColumn ) + { + GLfloat glfX = (GLfloat) iColumn - ( (GLfloat) iWidth / 2 ); + + bColor = (iColumn < 0) || (iColumn >= iWidth) || (iRow < 0) || (iRow >= iHeight); + + if ( m_pglgGrid->Occupied( iRow, iColumn ) ) + { + glPushMatrix(); + + glTranslatef( glfX, glfY, 0.0 ); + glScalef( 0.45, 0.45, 0.45 ); + + glBegin( GL_QUAD_STRIP ); + if (bColor) + glColor3f( 0.65, 0.3, 0.05 ); + else + glColor3f( 0.05, 0.8, 0.15 ); + glMaterialfv(GL_FRONT, GL_DIFFUSE, bColor ? glfOrange : glfGreen); + glNormal3f( 0.0, 1.0, 0.0 ); + glVertex3f( 1.0, 1.0, -1.0 ); + glVertex3f( -1.0, 1.0, -1.0 ); + glVertex3f( 1.0, 1.0, 1.0 ); + glVertex3f( -1.0, 1.0, 1.0 ); + + glNormal3f( 0.0, 0.0, 1.0 ); + glVertex3f( -1.0, 1.0, 1.0 ); + glVertex3f( 1.0, 1.0, 1.0 ); + glVertex3f( -1.0, -1.0, 1.0 ); + glVertex3f( 1.0, -1.0, 1.0 ); + + glNormal3f( 0.0, -1.0, 0.0 ); + glVertex3f( -1.0, -1.0, 1.0 ); + glVertex3f( 1.0, -1.0, 1.0 ); + glVertex3f( -1.0, -1.0, -1.0 ); + glVertex3f( 1.0, -1.0, -1.0 ); + glEnd(); + + glBegin( GL_QUAD_STRIP); + if (bColor) + glColor3f( 0.65, 0.3, 0.05 ); + else + glColor3f( 0.05, 0.8, 0.15 ); + glMaterialfv(GL_FRONT, GL_DIFFUSE, bColor ? glfOrange : glfGreen); + glNormal3f( -1.0, 0.0, 0.0 ); + glVertex3f( -1.0, 1.0, 1.0 ); + glVertex3f( -1.0, -1.0, 1.0 ); + glVertex3f( -1.0, 1.0, -1.0 ); + glVertex3f( -1.0, -1.0, -1.0 ); + + glNormal3f( 0.0, 0.0, -1.0 ); + glVertex3f( -1.0, 1.0, -1.0 ); + glVertex3f( -1.0, -1.0, -1.0 ); + glVertex3f( 1.0, 1.0, -1.0 ); + glVertex3f( 1.0, -1.0, -1.0 ); + + glNormal3f( 1.0, 0.0, 0.0 ); + glVertex3f( 1.0, 1.0, -1.0 ); + glVertex3f( 1.0, -1.0, -1.0 ); + glVertex3f( 1.0, 1.0, 1.0 ); + glVertex3f( 1.0, -1.0, 1.0 ); + glEnd(); + + glPopMatrix(); + } + } + } + + glPopMatrix(); +} + +// ------------------------------------------------------ +// GLifeView Class Advance Definition +void GLifeView::Advance( void ) +{ + if ( ( ++m_glfDelta ) > 360.0) + m_glfDelta -= 360.0; + // TODO: Allow for customized intervals + if ( ( ++m_iStep ) > 4 ) + { + m_iStep = 0; + m_pglgGrid->Generation(); + } + LockGL(); + BRect location(0,0,0,0); + Draw(location); + SwapBuffers(); + UnlockGL(); +} diff --git a/src/add-ons/screen_savers/glife/GLifeView.hpp b/src/add-ons/screen_savers/glife/GLifeView.hpp new file mode 100644 index 0000000..c5f858e --- /dev/null +++ b/src/add-ons/screen_savers/glife/GLifeView.hpp @@ -0,0 +1,36 @@ +/* + * Copyright 2012, Haiku, Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Aaron Hill <serac@xxxxxxxxxxxxxxx> + */ +#ifndef _GLIFE_GLIFEVIEW_HPP +#define _GLIFE_GLIFEVIEW_HPP + + +#include <GLView.h> +#include "GLifeState.hpp" + + +// GLifeView Class Declaration +class GLifeView : public BGLView { +public: + // Constructor & Destructor + GLifeView( BRect, char*, ulong, ulong, GLifeState* ); + ~GLifeView( void ); + + // Public Methods + void AttachedToWindow( void ); + virtual void Draw(BRect updateRect); + void Advance( void ); + +private: + GLifeState* m_pglsState; + GLifeGrid* m_pglgGrid; + + GLfloat m_glfDelta; + int32 m_iStep; +}; + +#endif /* _GLIFE_GLIFEVIEW_HPP */ diff --git a/src/add-ons/screen_savers/glife/Jamfile b/src/add-ons/screen_savers/glife/Jamfile new file mode 100644 index 0000000..9ddc2e1 --- /dev/null +++ b/src/add-ons/screen_savers/glife/Jamfile @@ -0,0 +1,36 @@ +SubDir HAIKU_TOP src add-ons screen_savers glife ; +SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; + +SetSubDirSupportedPlatformsBeOSCompatible ; + +# For GCC2 +if $(HAIKU_GCC_VERSION[1]) < 3 { + SubDirC++Flags --no-warnings ; +} + +UsePrivateHeaders screen_saver ; + # For BuildScreenSaverDefaultSettingsView + +local sources = + GLifeSaver.cpp + GLifeView.cpp + GLifeGrid.cpp + GLifeConfig.cpp +; + +Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; + # Dependency needed to trigger downloading/unzipping the package before + # compiling the files. + +AddResources GLife : GLife.rdef ; + +ScreenSaver GLife : + $(sources) : + be screensaver GL $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) +; + +DoCatalogs GLife : + x-vnd.Haiku-GLifeScreensaver + : + $(sources) +; ############################################################################ Commit: 51f9263bf29c411f0d14515b540fb610eb14150a URL: http://cgit.haiku-os.org/haiku/commit/?id=51f9263 Author: Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> Date: Sat Apr 7 00:28:42 2012 UTC glife: Pass const char* for name vs char* * Upgrades to Mesa vs Be BGLView ---------------------------------------------------------------------------- diff --git a/src/add-ons/screen_savers/glife/GLifeView.cpp b/src/add-ons/screen_savers/glife/GLifeView.cpp index f23a6f2..c782ad6 100644 --- a/src/add-ons/screen_savers/glife/GLifeView.cpp +++ b/src/add-ons/screen_savers/glife/GLifeView.cpp @@ -19,7 +19,7 @@ // ------------------------------------------------------ // GLifeView Class Constructor Definition -GLifeView::GLifeView(BRect rect, char* name, ulong resizingMode, +GLifeView::GLifeView(BRect rect, const char* name, ulong resizingMode, ulong options, GLifeState* pglsState) : BGLView(rect, name, resizingMode, 0, options), diff --git a/src/add-ons/screen_savers/glife/GLifeView.hpp b/src/add-ons/screen_savers/glife/GLifeView.hpp index c5f858e..1c519cf 100644 --- a/src/add-ons/screen_savers/glife/GLifeView.hpp +++ b/src/add-ons/screen_savers/glife/GLifeView.hpp @@ -17,7 +17,7 @@ class GLifeView : public BGLView { public: // Constructor & Destructor - GLifeView( BRect, char*, ulong, ulong, GLifeState* ); + GLifeView( BRect, const char*, ulong, ulong, GLifeState* ); ~GLifeView( void ); // Public Methods ############################################################################ Commit: 9339eb2063dbdff021f3f998c8d2e852840a1602 URL: http://cgit.haiku-os.org/haiku/commit/?id=9339eb2 Author: Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> Date: Sat Apr 7 00:31:58 2012 UTC glife: Enable in Jamfiles / build system ---------------------------------------------------------------------------- diff --git a/src/add-ons/screen_savers/Jamfile b/src/add-ons/screen_savers/Jamfile index edb42c6..8246ed0 100644 --- a/src/add-ons/screen_savers/Jamfile +++ b/src/add-ons/screen_savers/Jamfile @@ -3,7 +3,7 @@ SubDir HAIKU_TOP src add-ons screen_savers ; SubInclude HAIKU_TOP src add-ons screen_savers butterfly ; SubInclude HAIKU_TOP src add-ons screen_savers debugnow ; SubInclude HAIKU_TOP src add-ons screen_savers flurry ; -#SubInclude HAIKU_TOP src add-ons screen_savers glife ; +SubInclude HAIKU_TOP src add-ons screen_savers glife ; SubInclude HAIKU_TOP src add-ons screen_savers haiku ; SubInclude HAIKU_TOP src add-ons screen_savers icons ; SubInclude HAIKU_TOP src add-ons screen_savers ifs ; diff --git a/src/add-ons/screen_savers/glife/Jamfile b/src/add-ons/screen_savers/glife/Jamfile index 9ddc2e1..0b9d9b0 100644 --- a/src/add-ons/screen_savers/glife/Jamfile +++ b/src/add-ons/screen_savers/glife/Jamfile @@ -4,9 +4,9 @@ SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; SetSubDirSupportedPlatformsBeOSCompatible ; # For GCC2 -if $(HAIKU_GCC_VERSION[1]) < 3 { +#if $(HAIKU_GCC_VERSION[1]) < 3 { SubDirC++Flags --no-warnings ; -} +#} UsePrivateHeaders screen_saver ; # For BuildScreenSaverDefaultSettingsView ############################################################################ Commit: 3c94b5cb05058d92687da398daedfe91634e1b34 URL: http://cgit.haiku-os.org/haiku/commit/?id=3c94b5c Author: Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> Date: Sat Apr 7 00:43:48 2012 UTC glife: Rename *.hpp to *.h ---------------------------------------------------------------------------- diff --git a/src/add-ons/screen_savers/glife/GLifeConfig.cpp b/src/add-ons/screen_savers/glife/GLifeConfig.cpp index 1498015..5b5738a 100644 --- a/src/add-ons/screen_savers/glife/GLifeConfig.cpp +++ b/src/add-ons/screen_savers/glife/GLifeConfig.cpp @@ -12,8 +12,8 @@ #include <StringView.h> #include <View.h> -#include "GLifeState.hpp" -#include "GLifeConfig.hpp" +#include "GLifeState.h" +#include "GLifeConfig.h" // ------------------------------------------------------ diff --git a/src/add-ons/screen_savers/glife/GLifeConfig.hpp b/src/add-ons/screen_savers/glife/GLifeConfig.h similarity index 78% rename from src/add-ons/screen_savers/glife/GLifeConfig.hpp rename to src/add-ons/screen_savers/glife/GLifeConfig.h index baff361..907d5d9 100644 --- a/src/add-ons/screen_savers/glife/GLifeConfig.hpp +++ b/src/add-ons/screen_savers/glife/GLifeConfig.h @@ -5,14 +5,14 @@ * Authors: * Aaron Hill <serac@xxxxxxxxxxxxxxx> */ -#ifndef _GLIFE_GLIFECONFIG_HPP -#define _GLIFE_GLIFECONFIG_HPP +#ifndef _GLIFE_GLIFECONFIG_H +#define _GLIFE_GLIFECONFIG_H #include <Slider.h> #include <View.h> -#include "GLifeState.hpp" +#include "GLifeState.h" // Message IDs @@ -42,4 +42,4 @@ public: void MessageReceived( BMessage* ); }; -#endif /* _GLIFE_GLIFECONFIG_HPP */ +#endif /* _GLIFE_GLIFECONFIG_H */ diff --git a/src/add-ons/screen_savers/glife/GLifeGrid.cpp b/src/add-ons/screen_savers/glife/GLifeGrid.cpp index 44dd5fc..e2c5a25 100644 --- a/src/add-ons/screen_savers/glife/GLifeGrid.cpp +++ b/src/add-ons/screen_savers/glife/GLifeGrid.cpp @@ -11,7 +11,7 @@ #include <stdlib.h> #include <SupportDefs.h> -#include "GLifeGrid.hpp" +#include "GLifeGrid.h" // ------------------------------------------------------ @@ -83,4 +83,4 @@ bool GLifeGrid::Occupied( int32 iRow, int32 iColumn ) while( iNewRow < 0 ) iNewRow += m_iHeight; while( iNewColumn < 0 ) iNewColumn += m_iWidth; return m_pbGrid[ ( iNewRow * m_iWidth ) + iNewColumn ]; -} \ No newline at end of file +} diff --git a/src/add-ons/screen_savers/glife/GLifeGrid.hpp b/src/add-ons/screen_savers/glife/GLifeGrid.h similarity index 84% rename from src/add-ons/screen_savers/glife/GLifeGrid.hpp rename to src/add-ons/screen_savers/glife/GLifeGrid.h index 3d0441d..ab199ae 100644 --- a/src/add-ons/screen_savers/glife/GLifeGrid.hpp +++ b/src/add-ons/screen_savers/glife/GLifeGrid.h @@ -5,8 +5,8 @@ * Authors: * Aaron Hill <serac@xxxxxxxxxxxxxxx> */ -#ifndef _GLIFE_GLIFEGRID_HPP -#define _GLIFE_GLIFEGRID_HPP +#ifndef _GLIFE_GLIFEGRID_H +#define _GLIFE_GLIFEGRID_H // GLifeGrid Class Declaration @@ -29,4 +29,4 @@ public: bool Occupied( int32, int32 ); }; -#endif /* _GLIFE_GLIFEGRID_HPP */ \ No newline at end of file +#endif /* _GLIFE_GLIFEGRID_H */ diff --git a/src/add-ons/screen_savers/glife/GLifeSaver.cpp b/src/add-ons/screen_savers/glife/GLifeSaver.cpp index 10eb0d1..a954835 100644 --- a/src/add-ons/screen_savers/glife/GLifeSaver.cpp +++ b/src/add-ons/screen_savers/glife/GLifeSaver.cpp @@ -13,11 +13,11 @@ #include <ScreenSaver.h> #include <View.h> -#include "GLifeGrid.hpp" -#include "GLifeState.hpp" -#include "GLifeConfig.hpp" -#include "GLifeView.hpp" -#include "GLifeSaver.hpp" +#include "GLifeGrid.h" +#include "GLifeState.h" +#include "GLifeConfig.h" +#include "GLifeView.h" +#include "GLifeSaver.h" // ------------------------------------------------------ // GLifeSaver Class Constructor Definition diff --git a/src/add-ons/screen_savers/glife/GLifeSaver.hpp b/src/add-ons/screen_savers/glife/GLifeSaver.h similarity index 84% rename from src/add-ons/screen_savers/glife/GLifeSaver.hpp rename to src/add-ons/screen_savers/glife/GLifeSaver.h index 36c8354..aa54773 100644 --- a/src/add-ons/screen_savers/glife/GLifeSaver.hpp +++ b/src/add-ons/screen_savers/glife/GLifeSaver.h @@ -5,8 +5,8 @@ * Authors: * Aaron Hill <serac@xxxxxxxxxxxxxxx> */ -#ifndef _GLIFE_GLIFESAVER_HPP -#define _GLIFE_GLIFESAVER_HPP +#ifndef _GLIFE_GLIFESAVER_H +#define _GLIFE_GLIFESAVER_H // Required Includes @@ -45,4 +45,4 @@ public: }; -#endif /* _GLIFE_GLIFESAVER_HPP */ +#endif /* _GLIFE_GLIFESAVER_H */ diff --git a/src/add-ons/screen_savers/glife/GLifeState.hpp b/src/add-ons/screen_savers/glife/GLifeState.h similarity index 90% rename from src/add-ons/screen_savers/glife/GLifeState.hpp rename to src/add-ons/screen_savers/glife/GLifeState.h index fc64f55..9d459d2 100644 --- a/src/add-ons/screen_savers/glife/GLifeState.hpp +++ b/src/add-ons/screen_savers/glife/GLifeState.h @@ -5,8 +5,8 @@ * Authors: * Aaron Hill <serac@xxxxxxxxxxxxxxx> */ -#ifndef _GLIFE_GLIFESTATE_HPP -#define _GLIFE_GLIFESTATE_HPP +#ifndef _GLIFE_GLIFESTATE_H +#define _GLIFE_GLIFESTATE_H // Constants @@ -60,4 +60,4 @@ public: }; -#endif /* _GLIFE_GLIFESTATE_HPP */ +#endif /* _GLIFE_GLIFESTATE_H */ diff --git a/src/add-ons/screen_savers/glife/GLifeView.cpp b/src/add-ons/screen_savers/glife/GLifeView.cpp index c782ad6..e91b341 100644 --- a/src/add-ons/screen_savers/glife/GLifeView.cpp +++ b/src/add-ons/screen_savers/glife/GLifeView.cpp @@ -12,9 +12,9 @@ #include <GL/glu.h> #include <GLView.h> -#include "GLifeGrid.hpp" -#include "GLifeState.hpp" -#include "GLifeView.hpp" +#include "GLifeGrid.h" +#include "GLifeState.h" +#include "GLifeView.h" // ------------------------------------------------------ diff --git a/src/add-ons/screen_savers/glife/GLifeView.hpp b/src/add-ons/screen_savers/glife/GLifeView.h similarity index 83% rename from src/add-ons/screen_savers/glife/GLifeView.hpp rename to src/add-ons/screen_savers/glife/GLifeView.h index 1c519cf..64b516f 100644 --- a/src/add-ons/screen_savers/glife/GLifeView.hpp +++ b/src/add-ons/screen_savers/glife/GLifeView.h @@ -5,12 +5,12 @@ * Authors: * Aaron Hill <serac@xxxxxxxxxxxxxxx> */ -#ifndef _GLIFE_GLIFEVIEW_HPP -#define _GLIFE_GLIFEVIEW_HPP +#ifndef _GLIFE_GLIFEVIEW_H +#define _GLIFE_GLIFEVIEW_H #include <GLView.h> -#include "GLifeState.hpp" +#include "GLifeState.h" // GLifeView Class Declaration @@ -33,4 +33,4 @@ private: int32 m_iStep; }; -#endif /* _GLIFE_GLIFEVIEW_HPP */ +#endif /* _GLIFE_GLIFEVIEW_H */ ############################################################################ Commit: 8bc51bee4ce16e63524fc638188634d6d73f756c URL: http://cgit.haiku-os.org/haiku/commit/?id=8bc51be Author: Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> Date: Sat Apr 7 01:04:26 2012 UTC glife: Initial style cleanup ---------------------------------------------------------------------------- diff --git a/src/add-ons/screen_savers/glife/GLifeConfig.cpp b/src/add-ons/screen_savers/glife/GLifeConfig.cpp index 5b5738a..8b9336d 100644 --- a/src/add-ons/screen_savers/glife/GLifeConfig.cpp +++ b/src/add-ons/screen_savers/glife/GLifeConfig.cpp @@ -7,13 +7,14 @@ */ +#include "GLifeConfig.h" + #include <stdio.h> #include <Slider.h> #include <StringView.h> #include <View.h> #include "GLifeState.h" -#include "GLifeConfig.h" // ------------------------------------------------------ diff --git a/src/add-ons/screen_savers/glife/GLifeConfig.h b/src/add-ons/screen_savers/glife/GLifeConfig.h index 907d5d9..9c62b9e 100644 --- a/src/add-ons/screen_savers/glife/GLifeConfig.h +++ b/src/add-ons/screen_savers/glife/GLifeConfig.h @@ -42,4 +42,5 @@ public: void MessageReceived( BMessage* ); }; + #endif /* _GLIFE_GLIFECONFIG_H */ diff --git a/src/add-ons/screen_savers/glife/GLifeGrid.cpp b/src/add-ons/screen_savers/glife/GLifeGrid.cpp index e2c5a25..9e7c77a 100644 --- a/src/add-ons/screen_savers/glife/GLifeGrid.cpp +++ b/src/add-ons/screen_savers/glife/GLifeGrid.cpp @@ -7,12 +7,12 @@ */ +#include "GLifeGrid.h" + #include <math.h> #include <stdlib.h> #include <SupportDefs.h> -#include "GLifeGrid.h" - // ------------------------------------------------------ // GLifeGrid Class Neighbors Definition @@ -28,6 +28,7 @@ inline int32 GLifeGrid::Neighbors( int32 iRow, int32 iColumn ) ( Occupied( iRow + 1, iColumn + 1 ) ? 1 : 0 ); } + // ------------------------------------------------------ // GLifeGrid Class Constructor Definition GLifeGrid::GLifeGrid( int32 iWidth, int32 iHeight ) @@ -46,6 +47,7 @@ GLifeGrid::GLifeGrid( int32 iWidth, int32 iHeight ) } } + // ------------------------------------------------------ // GLifeGrid Class Destructor Definition GLifeGrid::~GLifeGrid( void ) @@ -53,6 +55,7 @@ GLifeGrid::~GLifeGrid( void ) delete m_pbGrid; } + // ------------------------------------------------------ // GLifeGrid Class Generation Definition void GLifeGrid::Generation( void ) @@ -75,6 +78,7 @@ void GLifeGrid::Generation( void ) m_pbGrid = pbTemp; } + // ------------------------------------------------------ // GLifeGrid Class Occupied Definition bool GLifeGrid::Occupied( int32 iRow, int32 iColumn ) diff --git a/src/add-ons/screen_savers/glife/GLifeGrid.h b/src/add-ons/screen_savers/glife/GLifeGrid.h index ab199ae..7068486 100644 --- a/src/add-ons/screen_savers/glife/GLifeGrid.h +++ b/src/add-ons/screen_savers/glife/GLifeGrid.h @@ -9,6 +9,9 @@ #define _GLIFE_GLIFEGRID_H +#include <OS.h> + + // GLifeGrid Class Declaration class GLifeGrid { @@ -29,4 +32,5 @@ public: bool Occupied( int32, int32 ); }; + #endif /* _GLIFE_GLIFEGRID_H */ diff --git a/src/add-ons/screen_savers/glife/GLifeSaver.cpp b/src/add-ons/screen_savers/glife/GLifeSaver.cpp index a954835..9574893 100644 --- a/src/add-ons/screen_savers/glife/GLifeSaver.cpp +++ b/src/add-ons/screen_savers/glife/GLifeSaver.cpp @@ -4,6 +4,7 @@ * * Authors: * Aaron Hill <serac@xxxxxxxxxxxxxxx> + * Alexander von Gluck <kallisti5@xxxxxxxxxxx> */ diff --git a/src/add-ons/screen_savers/glife/GLifeState.h b/src/add-ons/screen_savers/glife/GLifeState.h index 9d459d2..8e3e0db 100644 --- a/src/add-ons/screen_savers/glife/GLifeState.h +++ b/src/add-ons/screen_savers/glife/GLifeState.h @@ -14,6 +14,7 @@ const int32 c_iDefGridWidth = 60; const int32 c_iDefGridHeight = 40; const int32 c_iDefBorder = 0; + // GLifeState Class Declaration & Definition class GLifeState { diff --git a/src/add-ons/screen_savers/glife/GLifeView.cpp b/src/add-ons/screen_savers/glife/GLifeView.cpp index e91b341..b450094 100644 --- a/src/add-ons/screen_savers/glife/GLifeView.cpp +++ b/src/add-ons/screen_savers/glife/GLifeView.cpp @@ -50,6 +50,7 @@ GLifeView::GLifeView(BRect rect, const char* name, ulong resizingMode, UnlockGL(); } + // ------------------------------------------------------ // GLifeView Class Destructor Definition GLifeView::~GLifeView( void ) @@ -57,6 +58,7 @@ GLifeView::~GLifeView( void ) delete m_pglgGrid; } + // ------------------------------------------------------ // GLifeView Class AttachedToWindow Definition void GLifeView::AttachedToWindow( void ) @@ -66,6 +68,7 @@ void GLifeView::AttachedToWindow( void ) UnlockGL(); } + // ------------------------------------------------------ // GLifeView Class Draw Definition void GLifeView::Draw(BRect updateRect) @@ -164,6 +167,7 @@ void GLifeView::Draw(BRect updateRect) glPopMatrix(); } + // ------------------------------------------------------ // GLifeView Class Advance Definition void GLifeView::Advance( void ) diff --git a/src/add-ons/screen_savers/glife/GLifeView.h b/src/add-ons/screen_savers/glife/GLifeView.h index 64b516f..3458e6d 100644 --- a/src/add-ons/screen_savers/glife/GLifeView.h +++ b/src/add-ons/screen_savers/glife/GLifeView.h @@ -33,4 +33,5 @@ private: int32 m_iStep; }; + #endif /* _GLIFE_GLIFEVIEW_H */ ############################################################################ Revision: hrev43966 Commit: 7d0f6bd08c6a85222ceb55f49abb1ba805a91e05 URL: http://cgit.haiku-os.org/haiku/commit/?id=7d0f6bd Author: Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> Date: Sat Apr 7 01:11:27 2012 UTC Merge branch 'glife' ----------------------------------------------------------------------------