Hallo, ich kenne mich noch nicht so gut aus mit GM und weiß einfach nicht woran es liegt das meine Surface nicht mehr gezeichnet wird auf dem Handy.
Also folgendes Problem, ich habe einen Shader der ein Bild in eine Surface Schwarz weiß zeichnen soll, funktioniert auch super.
Bei der Surfaces ist es ja so das wenn das Fenster den Fokus verliert diese gelöscht wird und wieder um step event gezeichnet werden sollte.
Das funktioniert alles super wenn ich es in Windows teste. Lasse ich es auf dem android Handy laufen wird die erste Surface korrekt gezeichnet, verliert das Fenster den Fokus dann verschwindet alles und nur der Hintergrund ist zu sehen, die 2 Surface aus dem Step Event wird nicht mehr gezeichnet. Das passiert nur wenn ich den Shader nutze.
Mir fehlt da einfach die Erfahrung, warum tritt der Fehler auf dem andoird auf und bei Windows nicht ?
Hier mal der Code vom Shader in glsl:
/////
Alles anzeigen
///////////
und von meiner Surface im externen Script:
/////
///////
(die variablen sind alle richtig ich hab den code jetzt nicht komplett rein gestellt da sie nur größe definieren, global.rh ist ein rahmen den ich über das erste bild zeichne)
dann das surfaces im step event vom object :
//////
//////////
Was kann ich da tun damit das Surface nicht verschwindet nach dem das Fenster den Fokus verliert? Beziehungsweise was mache ich falsch?
Also folgendes Problem, ich habe einen Shader der ein Bild in eine Surface Schwarz weiß zeichnen soll, funktioniert auch super.
Bei der Surfaces ist es ja so das wenn das Fenster den Fokus verliert diese gelöscht wird und wieder um step event gezeichnet werden sollte.
Das funktioniert alles super wenn ich es in Windows teste. Lasse ich es auf dem android Handy laufen wird die erste Surface korrekt gezeichnet, verliert das Fenster den Fokus dann verschwindet alles und nur der Hintergrund ist zu sehen, die 2 Surface aus dem Step Event wird nicht mehr gezeichnet. Das passiert nur wenn ich den Shader nutze.
Mir fehlt da einfach die Erfahrung, warum tritt der Fehler auf dem andoird auf und bei Windows nicht ?
Hier mal der Code vom Shader in glsl:
/////
GML-Quellcode
- attribute vec3 in_Position; // (x,y,z)
- attribute vec4 in_Colour; // (r,g,b,a)
- attribute vec2 in_TextureCoord; // (u,v)
- varying vec2 v_vTexcoord;
- varying vec4 v_vColour;
- void main()
- {
- vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0);
- gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
- v_vColour = in_Colour;
- v_vTexcoord = in_TextureCoord;
- }
///////////
und von meiner Surface im externen Script:
/////
///////
(die variablen sind alle richtig ich hab den code jetzt nicht komplett rein gestellt da sie nur größe definieren, global.rh ist ein rahmen den ich über das erste bild zeichne)
dann das surfaces im step event vom object :
//////
GML-Quellcode
- if !surface_exists(pz_sf)
- {
- pz_sf=surface_create((sprite_width*pz_gr),(sprite_height*pz_gr));
- surface_set_target(pz_sf);
- shader_set(sh_black_and_white)
- draw_sprite_ext(sprite_index,0,0,0,pz_gr,pz_gr,0,c_white,1);
- draw_sprite_ext(global.rh,0,0,0,pz_gr,pz_gr,0,c_white,1);
- shader_reset()
- surface_reset_target();
- }
//////////
Was kann ich da tun damit das Surface nicht verschwindet nach dem das Fenster den Fokus verliert? Beziehungsweise was mache ich falsch?
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von steven919 ()