El lienzo es genial. - página 66

 
Para algunas tareas, como el escalado de la interfaz, la función de redimensionamiento de la imagen puede simplificarse enormemente.
Un ejemplo de función para cargar un recurso a un tamaño determinado.

bool  ImageFromResource(const string _resource,const int _w,const int _h,uint &_pic[])
{
   uint lp[];
   int wr, hr;
   if(_w<2 || _h<2) return(false);
   if(!ResourceReadImage(_resource,lp,wr,hr))
   {
      Print("Еrror loading resource: ",_resource);
      return(false);
   }
   if(_w!=wr || _h!=hr)
   {
      //resize image
      ArrayResize(_pic,_w*_h);
      double sw=(double)_w/wr;
      double sh=(double)_h/hr;
      //
      for(int _y=0; _y<_h; _y++)
         for(int _x=0; _x<_w; _x++)
            _pic[_y*_w+_x]=lp[int(_y/sh)*wr+int(_x/sw)];
   }else ArrayCopy(_pic,lp);
   return(true);
}

Comparación visual de los algoritmos de redimensionamiento, con la versión simplificada a la derecha.


 
fxsaber:

La minimización trivial de estos terminales reduce la gran carga de la CPU casi a cero. No está claro por qué se necesita una interfaz gráfica de usuario tan derrochadora.

hay que dar las gracias a los programadores,

por ejemplo, el códec de vídeo más popular madvr está en pausa y come como si estuviera minando)

 
fxsaber:

Sí. No creo que los desarrolladores hagan funcionar cinco terminales en paralelo, cuando la vigilancia del mercado de alta frecuencia tiene cientos de caracteres cada uno.

Resulta muy tonto cuando la minimización trivial de tales Terminales reduce una gran carga de la CPU a casi nada. No está claro por qué es necesaria una interfaz gráfica de usuario que consuma tan irracionalmente la CPU.

¿Y crees que el renderizado de la interfaz gráfica de usuario durante 300 veces por segundo es gratis?

Será el primero en reclamar que dibujemos mal, que no terminemos de dibujar o que nos saltemos el dibujo.

Si hablamos de un ordenador de sobremesa, necesitas una tarjeta de vídeo rápida y normal, ya que se mascará la alta tasa de renderizado. Minimizar las ventanas puede reducir la carga de la mayoría de las aplicaciones que se dibujan con frecuencia.


Para información, MetaTrader puede hacer 100-300 FPS debido al gran flujo de cotizaciones por segundo. No se trata de 1-2 fotogramas por segundo como los programas normales, sino de cientos de fotogramas por segundo según el flujo de citas.

 
Renat Fatkhullin:

¿Crees que dibujar el gui 300 veces por segundo es gratis?

Serás el primero en reclamar que dibujemos mal, que no terminemos de dibujar o que nos saltemos el dibujo.

Si hablamos de un ordenador de sobremesa, necesitas una tarjeta de vídeo rápida y normal, ya que se mascará la alta tasa de renderizado. Minimizar las ventanas puede reducir la carga de la mayoría de las aplicaciones que se dibujan con frecuencia.


Para información, MetaTrader puede hacer 100-300 FPS debido al gran flujo de cotizaciones por segundo. No se trata de 1-2 fotogramas por segundo como los programas normales, sino de cientos de fotogramas por segundo según el flujo de citas.

Renat has probado todos los nuevos procesadores que ahora están al nivel de 10 Intel proces y zen2 más rápidos por núcleo que tenemos funcionando aquí, ¿verdad?

Que yo sepa Intel no es bueno en multithreading, Amd paraliza bien el multithreading, es una buena idea
 

Lienzo - ¡Genial!

¿Cómo ayuda en el comercio?

 
Renat, ya que estás aquí, por favor, escribe de nuevo
 
prostotrader:

Lienzo - ¡Genial!

¿Ayuda en el comercio?

 
Yury Kulikov:
Para algunas tareas, como el escalado de la interfaz, la función de redimensionamiento de la imagen puede simplificarse mucho.
Un ejemplo de función para cargar un recurso a un tamaño determinado.

Comparación visual de los algoritmos de redimensionamiento, con la versión simplificada a la derecha.

Pues sí, Yuri, estoy de acuerdo. Este algoritmo superrápido tiene derecho a la vida.
Pero, por supuesto, tiene una grave pérdida de calidad. Especialmente en las imágenes, donde hay transiciones de color bruscas.
Aquí hay un guión, por ejemplo, que lo demuestra claramente. A la derecha este algoritmo rápido, y a la izquierda el mío (unas 4-10 veces más lento).
Un ejemplo de reducción de pantalla normal:


Por cierto, entendí por qué había esos parpadeos. Estaba redimensionando el mapa de bits en cada fotograma, lo cual era una estupidez y esa era la razón. Ahora lo he quitado y todo funciona sin problemas.

Archivos adjuntos:
Scaling.gif  12254 kb
scaling2.zip  290 kb
 
Fast235:

Renat has probado todos los nuevos procesadores, que ahora están al nivel de 10 Intel proces y zen2 más rápidos por núcleo que tenemos aquí funcionando, ¿no?

Que yo sepa Intel no es bueno en el multithreading, AMD paraliza bien el multithreading, es una buena solución

Todos los procesadores modernos son suficientemente rápidos.

Sobre todo si tienes mucha memoria y unidades NVMe para tareas de terminal. Una tarjeta gráfica de gama media es muy recomendable.

En nuestra empresa rechazamos los intels y desde hace más de un año sólo compramos AMD Epyc para servidores y estaciones de trabajo.

 
Renat Fatkhullin:

Todos los procesadores modernos son bastante rápidos. Sobre todo si hay mucha memoria y discos NVMe.

Para el terminal, es muy recomendable una tarjeta gráfica de gama media.

En nuestra empresa rechazamos a Intel y desde hace más de un año compramos sólo AMD Epyc para servidores y estaciones de trabajo.

grandioso)