예제 #1
0
		public void Update( Rectangle drawSize, bool SetImage ) {
			if( Initialized == false )
				return;

			if( SetImage == true )
				ImageObj = new Bitmap( mPicBox.Width, mPicBox.Height );
			else
				ImageObj = new Bitmap( drawSize.Width, drawSize.Height );
			using( Graphics g = Graphics.FromImage( ImageObj ) ) {

				g.SmoothingMode = SmoothingMode.HighQuality;
				g.InterpolationMode = InterpolationMode.HighQualityBicubic;
				using( GraphicsPath gp = new GraphicsPath() ) {
					if( BackgroundCorner > 0 )
						gp.AddRectangleRounded( drawSize, BackgroundCorner );
					else
						gp.AddRectangle( drawSize );
					g.SetClip( gp );
				}

				for( int i = DrawOrder.Count - 1; i >= 0; i-- ) {
					switch( DrawOrder[ i ] ) {
						case EDrawOrder.Signatur_Rand:
							DrawForeground( g, drawSize );
							break;
						case EDrawOrder.Custom_Text:
							DrawCustomString( g, drawSize );
							break;
						case EDrawOrder.Charakter_Details:
							DrawShaiyaDetails( g, drawSize );
							break;
						case EDrawOrder.Hintergrund_Image:

							DrawBackgroundImage( g, drawSize );
							break;
						case EDrawOrder.Hintergrund_Überlagerung:
							DrawBackgroundOverlay( g, drawSize );
							break;
						case EDrawOrder.Hintergrund_Verlauf:
							DrawBackgroundGradient( g, drawSize );
							break;
					}

				}
			}

			if( SetImage == false )
				return;

			mPicBox.Image = ImageObj.Clone() as Image;
			mPicBox.Invalidate();
			ImageObj.Dispose();
		}