' Testbildgenerator #include "fbgfx.bi" Const ZEI_BREITE As Integer = 8 Const ZEI_HOEHE As Integer = 16 Const BEDIENPANEL_BREITE As Integer = 256 Const ABST_DREIECK = 100 Dim Shared dithTab(127) As Integer Dim Shared bx As Integer, by As Integer Dim i As Integer, x0 As Integer, y0 As Integer Dim cTmp As String, j As Integer, fa As LongInt, k As Integer Dim xOffs As Integer, yOffs As Integer, xGroe As Integer, yGroe As Integer Dim h1 As Integer, h2 As Integer Sub ZeichneDreieck (x As Integer, y As Integer, vx As Integer, vy As Integer, f As LongInt) Const GROESSE = 20 Dim i As Integer For i=0 To GROESSE Line(x + vx * i - vy * i, y + vy * i + vx * i)-(x + vx * i + vy * i, y + vy * i - vx * i), f, BF Next i End Sub function dither1oder0 (x As Integer, y As Integer, farbton As Integer) As Integer dither1oder0 = farbton > 2 * dithTab(x + y AND 127) + dithTab(x AND 127) End Function ' Dithertabelle initialsieren h1 = 1 h2 = 128 For i = 0 TO 6 h2 \= 2 For j = 0 TO 127 If j And h2 Then dithTab(j) += h1 EndIf Next j h1 *= 4 Next i ScreenControl FB.GET_DESKTOP_SIZE, bx, by cTmp = Command(1) i = InStr(cTmp, "x") If i > 0 Then ' Auf 2. erweiterten Bildschirm (Beamer) xGroe = ValInt(Left(cTmp, i - 1)) yGroe = ValInt(Mid(cTmp, i + 1)) xOffs = BEDIENPANEL_BREITE yOffs = 0 ScreenRes BEDIENPANEL_BREITE + xGroe, yGroe, 32, ,FB.GFX_NO_FRAME ScreenControl FB.SET_WINDOW_POS, bx - BEDIENPANEL_BREITE, 0 Width (BEDIENPANEL_BREITE + xGroe) \ ZEI_BREITE, yGroe \ ZEI_HOEHE Print "Ende mit Taste" Else ' Hauptbildschirm selber) xGroe = bx yGroe = by xOffs = 0 yOffs = 0 ScreenRes xGroe, yGroe, 32, ,FB.GFX_NO_FRAME ScreenControl FB.SET_WINDOW_POS, 0, 0 Width xGroe \ ZEI_BREITE, yGroe \ ZEI_HOEHE EndIf Line(xOffs, yOffs)-(xOffs + xGroe - 1, yOffs + yGroe - 1), RGB(128, 128, 128), BF x0 = xOffs + xGroe \ 2 - 308 y0 = yOffs + yGroe \ 2 - 180 ' Farbkeile For i=0 To 255 Line(x0 + i, y0)-Step(0, 75), RGB(i, 0, 0), BF Line(x0 + i, y0 + 90)-Step(0, 75), RGB(0, i, 0), BF Line(x0 + i, y0 + 180)-Step(0, 75), RGB(0, 0, i), BF Line(x0 + 270, y0 + i)-Step(75, 0), RGB(i, i, i), BF Line(x0 + 360 + i, y0)-Step(0, 75), RGB(i, 255, 255), BF Line(x0 + 360 + i, y0 + 90)-Step(0, 75), RGB(255, i, 255), BF Line(x0 + 360 + i, y0 + 180)-Step(0, 75), RGB(255, 255, i), BF For j = 0 To 15 If dither1oder0(i, j, CInt(CSng(i) * 16383.0 / 255.0)) Then PSet(x0 + i, y0 + 30 + j), RGB(255, 0, 0) PSet(x0 + i, y0 + 120 + j), RGB(0, 255, 0) PSet(x0 + i, y0 + 210 + j), RGB(0, 0, 255) PSet(x0 + 300 + j, y0 + i), RGB(255, 255, 255) PSet(x0 + 360 + i, y0 + 30 + j), RGB(255, 255, 255) PSet(x0 + 360 + i, y0 + 120 + j), RGB(255, 255, 255) PSet(x0 + 360 + i, y0 + 210 + j), RGB(255, 255, 255) Else PSet(x0 + i, y0 + 30 + j), RGB(0, 0, 0) PSet(x0 + i, y0 + 120 + j), RGB(0, 0, 0) PSet(x0 + i, y0 + 210 + j), RGB(0, 0, 0) PSet(x0 + 300 + j, y0 + i), RGB(0, 0, 0) PSet(x0 + 360 + i, y0 + 30 + j), RGB(0, 255, 255) PSet(x0 + 360 + i, y0 + 120 + j), RGB(255, 0, 255) PSet(x0 + 360 + i, y0 + 210 + j), RGB(255, 255, 0) EndIf Next j Line(x0 - 124 + i, y0 + 472)-Step(0, 55), RGB(i, 128, 128), bf Line(x0 + 180 + i, y0 + 472)-Step(0, 55), RGB(128, i, 128), bf Line(x0 + 484 + i, y0 + 472)-Step(0, 55), RGB(128, 128, i), bf Next i ' Grundfarben For i=0 To 7 Line(x0 + 79 * i, y0 - 168)-Step(62, 119), RGB(255 * (i Shr 2 And 1), 255 * (i Shr 1 And 1), 255 * (i And 1)), bf Next i ' Immer feiner werdende Streifen For i=0 To 7 For j=0 To 119 If (j \ (i + 1) And 1)=1 Then fa = RGB(255, 255, 255) Else fa = RGB(0, 0, 0) EndIf Line(x0 - 168 + j, y0 - 168 + 76 * i)-Step(0, 59), fa, bf Line(x0 + 79 * i, y0 + 304 + j)-Step(62, 0), fa, bf Next j Next i ' Schachbrettmuster For i = 0 To 7 For j = 0 To 59 For k = 0 To 119 If ((j \ (i + 1) Xor k \ (i + 1)) And 1)=1 Then PSet(x0 + 664 + k, y0 - 168 + 76 * i + j), RGB(255, 255, 255) Else PSet(x0 + 664 + k, y0 - 168 + 76 * i + j), RGB(0, 0, 0) EndIf Next k Next j Next i ' Randdreiecke (Kontrolle, dass nichts abgeschnitten wird) ZeichneDreieck xOffs, yOffs + ABST_DREIECK, 1, 0, RGB(255, 255, 255) ZeichneDreieck xOffs, yOffs + yGroe \ 2, 1, 0, RGB(0, 0, 0) ZeichneDreieck xOffs, yOffs + yGroe - ABST_DREIECK, 1, 0, RGB(255, 255, 255) ZeichneDreieck xOffs + xGroe - 1, yOffs + ABST_DREIECK, -1, 0, RGB(255, 255, 255) ZeichneDreieck xOffs + xGroe - 1, yOffs + yGroe \ 2, -1, 0, RGB(0, 0, 0) ZeichneDreieck xOffs + xGroe - 1, yOffs + yGroe - ABST_DREIECK, -1, 0, RGB(255, 255, 255) ZeichneDreieck xOffs + ABST_DREIECK, yOffs, 0, 1, RGB(255, 255, 255) ZeichneDreieck xOffs + xGroe \ 2, yOffs, 0, 1, RGB(0, 0, 0) ZeichneDreieck xOffs + xGroe - ABST_DREIECK, yOffs, 0, 1, RGB(255, 255, 255) ZeichneDreieck xOffs + ABST_DREIECK, yOffs + yGroe - 1, 0, -1, RGB(255, 255, 255) ZeichneDreieck xOffs + xGroe \ 2, yOffs + yGroe - 1, 0, -1, RGB(0, 0, 0) ZeichneDreieck xOffs + xGroe - ABST_DREIECK, yOffs + yGroe - 1, 0, -1, RGB(255, 255, 255) Sleep