1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #include "VideoKarte.h"
- #include <Rahmen.h>
- #include <Punkt.h>
- #include "..\Kamera\VideoKamera.h"
- // Inhalt der VideoKarte Klasse aus VideoKarte.h
- // Konstruktor
- VideoKarte::VideoKarte()
- {
- map = new RCArray< Bild >();
- rahmen = new RCArray< Rahmen >();
- runde = 0;
- map->set( new Bild(), runde );
- rahmen->set( new Rahmen(), runde );
- rahmen->z( runde )->setFarbe( 0xFFFFFFFF );
- rahmen->z( runde )->setRamenBreite( 2 );
- ref = 1;
- }
- // Destruktor
- VideoKarte::~VideoKarte()
- {
- map->release();
- rahmen->release();
- }
- // nicht constant
- void VideoKarte::setSize( int br, int hö )
- {
- map->z( runde )->neuBild( br, hö, 0 );
- rahmen->z( runde )->setSize( br, hö );
- }
- void VideoKarte::nextRunde( bool vorwärts )
- {
- if( vorwärts )
- {
- runde++;
- map->set( new Bild(), runde );
- rahmen->set( new LRahmen(), runde );
- rahmen->z( runde )->setFarbe( 0xFFFFFFFF );
- rahmen->z( runde )->setRamenBreite( 2 );
- }
- else
- runde--;
- }
- void VideoKarte::render( VideoKamera *zKam, Bild &zRObj )
- {
- rahmen->z( runde )->setPosition( zKam->getRX( 0 ), zKam->getRY( 0 ) );
- zRObj.drawBild( rahmen->z( runde )->getX(), rahmen->z( runde )->getY(), map->z( runde )->getBreite(), map->z( runde )->getHeight(), *map->z( runde ) );
- rahmen->z( runde )->render( zRObj );
- }
- // constant
- int VideoKarte::getBreite() const
- {
- return map->z( runde )->getBreite();
- }
- int VideoKarte::getHeight() const
- {
- return map->z( runde )->getHeight();
- }
- Bild *VideoKarte::zMap() const
- {
- return ( map->z( runde )->getBreite() != 0 && map->z( runde )->getHeight() != 0 ) ? map->z( runde ) : 0;
- }
- Bild *VideoKarte::zMap( int runde ) const
- {
- return ( map->z( runde )->getBreite() != 0 && map->z( runde )->getHeight() != 0 ) ? map->z( runde ) : 0;
- }
- // Reference Counting
- VideoKarte *VideoKarte::getThis()
- {
- ref++;
- return this;
- }
- VideoKarte *VideoKarte::release()
- {
- ref--;
- if( !ref )
- delete this;
- return 0;
- }
|