#include "KSGSBild.h" #include "KSGSTyp.h" #include "../Error/Error.h" #include #include "KSGSBool.h" #include "KSGSInt.h" using namespace KSGScript; // Inhalt der KSGSBildKlasse Klasse aus KSGSBild.h // Konstruktor KSGSBildKlasse::KSGSBildKlasse( KSGScriptProcessor *zObj, Bild *std ) : KSGSKlasseInstanz( KSGS_BILD, 0, 0, zObj ) { val = std; } // Destruktor KSGSBildKlasse::~KSGSBildKlasse() { val->release(); } // nicht constant void KSGSBildKlasse::set( Bild *b ) { if( val ) val->release(); val = b; } KSGSVariable *KSGSBildKlasse::startFunktion( int id, bool access, RCArray< KSGSVariable > *parameter ) { KSGSVariable *ret = 0; switch( id ) { case 0: // void neuBild( int, int, int ) if( parameter->getEintragAnzahl() < 3 ) error( 20, {}, obj ); val->neuBild( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0 ); break; case 1: // void setAlpha( int ) if( parameter->getEintragAnzahl() < 1 ) error( 20, {}, obj ); val->setAlpha( (unsigned char)( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0 ) ); break; case 2: // void releaseAlpha() val->releaseAlpha(); break; case 3: // void alphaPixel( int, int, int ) if( parameter->getEintragAnzahl() < 3 ) error( 20, {}, obj ); if( val->hasAlpha3D() ) { val->alphaPixelDP3D( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0 ); } else { val->alphaPixelDP2D( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0 ); } break; case 4: // void setPixel( int, int, int ) if( parameter->getEintragAnzahl() < 3 ) error( 20, {}, obj ); val->setPixelDP( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0 ); break; case 5: // void alphaRegion( int, int, int, int, int ) if( parameter->getEintragAnzahl() < 5 ) error( 20, {}, obj ); val->alphaRegion( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0, parameter->z( 4 ) ? parameter->z( 4 )->getInt() : 0 ); break; case 6: // void füllRegion( int, int, int, int, int ) if( parameter->getEintragAnzahl() < 5 ) error( 20, {}, obj ); val->fillRegion( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0, parameter->z( 4 ) ? parameter->z( 4 )->getInt() : 0 ); break; case 7: // void drawLinieAlpha( int, int, int, int, int ) if( parameter->getEintragAnzahl() < 5 ) error( 20, {}, obj ); val->drawLinieAlpha( Punkt( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0 ), Punkt( parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0 ), parameter->z( 4 ) ? parameter->z( 4 )->getInt() : 0 ); break; case 8: // void drawLinie( int, int, int, int, int ) if( parameter->getEintragAnzahl() < 5 ) error( 20, {}, obj ); val->drawLinie( Punkt( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0 ), Punkt( parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0 ), parameter->z( 4 ) ? parameter->z( 4 )->getInt() : 0 ); break; case 9: // void alphaBild( int, int, int, int, Bild ) if( 1 ) { if( parameter->getEintragAnzahl() < 5 ) error( 20, {}, obj ); Bild *tmp = parameter->z( 4 ) ? parameter->z( 4 )->getBild() : new Bild(); if( tmp ) { val->alphaBild( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0, *tmp ); tmp->release(); } } break; case 10: // void drawBild( int, int, int, int, Bild ) if( 1 ) { if( parameter->getEintragAnzahl() < 5 ) error( 20, {}, obj ); Bild *tmp = parameter->z( 4 ) ? parameter->z( 4 )->getBild() : new Bild(); if( tmp ) { val->drawBild( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0, *tmp ); tmp->release(); } } break; case 11: // void alphaBild90( int, int, int, int, Bild ) if( 1 ) { if( parameter->getEintragAnzahl() < 5 ) error( 20, {}, obj ); Bild *tmp = parameter->z( 4 ) ? parameter->z( 4 )->getBild() : new Bild(); if( tmp ) { val->alphaBild90( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0, *tmp ); tmp->release(); } } break; case 12: // void drawBild90( int, int, int, int, Bild ) if( 1 ) { if( parameter->getEintragAnzahl() < 5 ) error( 20, {}, obj ); Bild *tmp = parameter->z( 4 ) ? parameter->z( 4 )->getBild() : new Bild(); if( tmp ) { val->drawBild90( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0, *tmp ); tmp->release(); } } break; case 13: // void alphaBild180( int, int, int, int, Bild ) if( 1 ) { if( parameter->getEintragAnzahl() < 5 ) error( 20, {}, obj ); Bild *tmp = parameter->z( 4 ) ? parameter->z( 4 )->getBild() : new Bild(); if( tmp ) { val->alphaBild180( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0, *tmp ); tmp->release(); } } break; case 14: // void drawBild180( int, int, int, int, Bild ) if( 1 ) { if( parameter->getEintragAnzahl() < 5 ) error( 20, {}, obj ); Bild *tmp = parameter->z( 4 ) ? parameter->z( 4 )->getBild() : new Bild(); if( tmp ) { val->drawBild180( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0, *tmp ); tmp->release(); } } break; case 15: // void alphaBild270( int, int, int, int, Bild ) if( 1 ) { if( parameter->getEintragAnzahl() < 5 ) error( 20, {}, obj ); Bild *tmp = parameter->z( 4 ) ? parameter->z( 4 )->getBild() : new Bild(); if( tmp ) { val->alphaBild270( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0, *tmp ); tmp->release(); } } break; case 16: // void drawBild270( int, int, int, int, Bild ) if( 1 ) { if( parameter->getEintragAnzahl() < 5 ) error( 20, {}, obj ); Bild *tmp = parameter->z( 4 ) ? parameter->z( 4 )->getBild() : new Bild(); if( tmp ) { val->drawBild270( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0, *tmp ); tmp->release(); } } break; case 17: // bool setDrawOptions( int, int, int, int ) if( parameter->getEintragAnzahl() < 4 ) error( 20, {}, obj ); ret = new KSGSBoolKlasse( obj, val->setDrawOptions( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0 ) ); break; case 18: // bool setDrawOptionsErzwingen( int, int, int, int ) if( parameter->getEintragAnzahl() < 4 ) error( 20, {}, obj ); ret = new KSGSBoolKlasse( obj, val->setDrawOptionsErzwingen( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0, parameter->z( 2 ) ? parameter->z( 2 )->getInt() : 0, parameter->z( 3 ) ? parameter->z( 3 )->getInt() : 0 ) ); break; case 19: // void releaseDrawOptions() val->releaseDrawOptions(); break; case 20: // int getBreite() ret = new KSGSIntKlasse( obj, val->getBreite() ); break; case 21: // int getHöhe() ret = new KSGSIntKlasse( obj, val->getHeight() ); break; case 22: // int getPixel( int, int ) if( parameter->getEintragAnzahl() < 2 ) error( 20, {}, obj ); ret = new KSGSIntKlasse( obj, val->getPixel( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0 ) ); break; case 23: // void addScrollOffset( int, int ) if( parameter->getEintragAnzahl() < 2 ) error( 20, {}, obj ); val->addScrollOffset( parameter->z( 0 ) ? parameter->z( 0 )->getInt() : 0, parameter->z( 1 ) ? parameter->z( 1 )->getInt() : 0 ); break; default: // unbekannt error( 19, {}, obj ); break; } parameter->release(); return ret; } KSGSVariable *KSGSBildKlasse::doOperator( int id, KSGSVariable *rechts ) { if( !rechts ) { error( 3, {}, obj ); return 0; } KSGSVariable *ret = 0; switch( id ) { case KSGS_O_SET: if( 1 ) { val->release(); val = rechts->getBild(); ret = dynamic_cast( getThis() ); } break; } if( !ret ) error( 21, {}, obj ); if( rechts ) rechts->release(); return ret; } // constant Bild *KSGSBildKlasse::getVal() const { return dynamic_cast( val->getThis() ); } Bild *KSGSBildKlasse::zVal() const { return val; }