ANDROID: grabsprite + createscreen ohne funktion

Previous topic - Next topic

Beginner

Hallo,

auf meinem Android Tablet (Medion Lifetab) funktionieren die Befehle grabsprite und createscreen nicht. Es werden nur weiße Flächen angezeigt.

unter windows7 macht der code was er soll. Unter Android ist der ganze Bildschirm weiß:
Code (glbasic) Select

  GRABSPRITE gfx_zoom, 0,0, opti_w, opti_h
  SMOOTHSHADING FALSE
  STRETCHSPRITE gfx_bg, 0,0, gw, gh



Kitty Hello

Android proboem. Bitte versuche CREATESCREEN und USESCREEN statt dessen.

Beginner

Um das zu testen, habe ich ein Programm geschrieben, welches ein 10x10 Felder großes Schachbrettmuster in grau/ weiß auf den Bildschirm zaubert. Ich möchte, dass das Programm auf jedem beliebigen Android-fähigen Gerät im Vollbild dargestellt wird, obwohl das Programm für eine bestimmte Auflösung optimiert ist (im Beispiel 320x240 Pixel). Dazu habe ich einen virtuellen Bildschirm "tmp_buffer" mit der optimierten Auflösung erzeugt, auf der erstmal die Grafikdarstellung erfolgt. Dann möchte ich das fertige Bild nehmen und auf dem Backbuffer in die Vollbildauflösung des Endgerätes skalieren.

Auf Win7 funktioniert mein Programm einwandfrei.

Auf meinem Android 3.2 Tablet leider nicht. Er skaliert das Bild nicht, sondern stellt es in der original-Auflösung 320x240 dar. Ich kann jetzt leider nicht sagen, ob es sich bei der Darstellung um den virtuellen Bildschirm handelt oder ob das Bild im Backbuffer einfach nicht skaliert wird.

Hier mein Kot  ;):

Code (glbasic) Select
// --------------------------------- //
// Project: test_createscreen_usescreen
// Start: Friday, May 11, 2012
// IDE Version: 10.283

SETSCREEN 1024,768, 0

CONSTANT gfx_path$ = "media"

CONSTANT opti_w = 320
CONSTANT opti_h = 240

CONSTANT tmp_buffer        = 0
CONSTANT tmp_buffer_sprite = 0

GLOBAL gw, gh  // graphics width, graphics height




CREATESCREEN tmp_buffer, tmp_buffer_sprite, opti_w, opti_h

set_gfx()

WHILE TRUE
  draw_all()
  USESCREEN -1
 
  STRETCHSPRITE tmp_buffer_sprite, 0, 0, gw, gh
   
  SHOWSCREEN
WEND




FUNCTION set_gfx:
  GETSCREENSIZE gw, gh
  IF gw < gh
    SETORIENTATION 1
    GETSCREENSIZE gw, gh
  ENDIF
 
  SETCURRENTDIR (gfx_path$)
ENDFUNCTION

FUNCTION draw_all:
  LOCAL tsx# = opti_w / 10
  LOCAL tsy# = opti_h / 10

  USESCREEN tmp_buffer
  FOR y = 0 TO 9
    FOR x = 0 TO 9
      IF MOD(y,2)= 0
        IF MOD(x,2) = 0
          DRAWRECT x * tsx, y * tsy, tsx, tsy, RGB (100,100,100)
        ELSE
          DRAWRECT x * tsx, y * tsy, tsx, tsy, RGB (255,255,255)
        ENDIF
      ELSE
        IF MOD(x,2) = 0
          DRAWRECT x * tsx, y * tsy, tsx, tsy, RGB (255,255,255)
        ELSE
          DRAWRECT x * tsx, y * tsy, tsx, tsy, RGB (100,100,100)
        ENDIF
      ENDIF
 
    NEXT
  NEXT
ENDFUNCTION

Beginner

Ist zwar schon eine Weile her, aber das Problem konnte ich auf meinem Tablet immer noch nicht lösen. :'(

Heute habe ich das Programm (siehe oben) auf meinem Smartphone getestet (Sony experia Mini Pro) und da läuft es mit createscreen und usescreen einwandfrei.

Es scheint also an meinem Tablet zu liegen (Medion Lifetab P9514).

Das Medion Tablet hat übrigens Android 4.0.3 drauf, während das Sony noch 2.3.4. installiert hat.

Vielleicht habt ihr ja auch ein Android-Gerät und könnt es mal testen. Hier der Download.

schachbrett.apk

Bitte schreibt, auf welchem Gerät ihr die app getestet habt und ob sie funktioniert hat (oder nicht).

Die App soll ein 10x10 Felder großes, grau-weißes Schachbrettmuster im Vollbild darstellen.

Auf meinem Tablet sehe ich das Muster zwar auch, aber nicht auf Vollbild skaliert.

Asmodean


Quote
Bitte schreibt, auf welchem Gerät ihr die app getestet habt und ob sie funktioniert hat (oder nicht).

Die App soll ein 10x10 Felder großes, grau-weißes Schachbrettmuster im Vollbild darstellen.

Auf meinem Tablet sehe ich das Muster zwar auch, aber nicht auf Vollbild skaliert.

Hallo,

ich hab es mal auf zwei Tablets getestet.
Auf meinem Archos 101 IT mit Android 2.2 wird das Schachbrett skaliert über das ganze Display.
Bei meinem Acer Iconia A210 mit Android 4.04 wird das Schachbrett nicht skaliert. Es wird nur klein in einer Ecke dargestellt.
Ich denke du hast recht und es liegt an Android 4.

Beginner

Hey, erstmal vielen Dank für deine Mühe.

Ich habe meinem Sohn gestern ein ganz billiges 7" SurfTab von Trekstore gekauft (79 EUR). Da ist Android 4.0.4 drauf, aber das Schachbrett wird im Vollbild dargestellt, so wie es sein soll. Liegt also nicht an der Android Version.  :(

Ich habe die Grafikchips in Verdacht, denn Medion und Acer haben beide Nvidia verbaut.

Sony hat einen Qualcomm Snapdragon, das Trekstore einen Mali 400 MP (400MHz, 4-Cores) und das Archos hat einen ARM Cortex A8 (wenn ich das alles richtig gegoogelt habe).

Ach ja, auf dem Medion hatte ich diesen Fehler schon vor dem upgrade auf Android 4.

EDIT: in einem anderen Post habe ich gelesen, dass auf dem Nexus 7 auch kein createscreen möglich ist. Das Gerät hat ebenfalls einen chip von Nvidia.


Die Frage ist, gibt es eine Alternative zu createscreen, die auf allen Geräten läuft?