Una cosa rara con SCALE_MODE

Started by osk, October 13, 2009, 09:04:20 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

osk

Hola.
Estoy intentando hacer un ejemplo muy sencillo para mostrar los distintos valores de SCALE_MODE (pulsando diferentes teclas) y funciona bien...excepto por el detalle que tengo un círculo pintado en pantalla para ver qué le pasa cuando se cambia de escala y resulta que...si no es con el valor de escala por defecto, DESAPARECE. ¿Es normal esto?
Gracias...

Aquí está el código:

[code language="bennu"]
Import "mod_video";
Import "mod_text";
Import "mod_key";
Import "mod_map";
Import "mod_proc";
Import "mod_draw";

Process Main()
begin       
  set_mode(320,240);
  write(0,100,50,0,"Valor de SCALE_MODE:");
  write_var(0,250,50,0,scale_mode);
  proceso();
  repeat
   if(key(_a)) scale_mode=SCALE_NONE;set_mode(320,240);end
   if(key(_s)) scale_mode=SCALE_SCALE2X;set_mode(320,240);end
   if(key(_d)) scale_mode=SCALE_HQ2X;set_mode(320,240);end
   if(key(_f)) scale_mode=SCALE_SCANLINE2X;set_mode(320,240);end
   if(key(_g)) scale_mode=SCALE_NOFILTER;set_mode(320,240);end
   frame;
  until(key(_esc))
  let_me_alone();
end                           

Process proceso()
begin
  x=180;y=100;
  graph=new_map(60,60,32);
  drawing_map(0,graph);
  drawing_color(rgb(255,255,0));
  draw_fcircle(25,25,25);
  loop
   frame;
  end
end
[/code]

splinter_work

completamente normal... debido a que scale_mode no soporta 32 bits...

ahi estas haciendo set_mode que por default actualmente es 16bits, y no puedes escribir un grafico de 32 sobre 16... nunca mayor resolucion en menor... es siempre a la inversa, = o menor a la destino.