Diferencias entre la Dalvik VM y ART

Video por xymind.

Anuncios

Preguntando por el red – Constantes vs #define en C/C++

Featured image

Muchas programadores usan mucho los #defines. Pero hasta hace poco no se me ha hacía muy buena idea usarlos.

Esto es debido a que algunas veces están mal ubicados en alguna cabecera y al momento de querer modificar algunas de estas constantes, fastidiaba el tiempo de compilación debido a que si esta cabecera estaba incluida en varios archivos .cpp o incluso otras cabeceras. Esto provoca recompilar archivos que a lo mejor no venían al caso con la modificación que hiciste.

Entonces, cuál es la ventaja del #define? Decidí quitarme la duda en los foros de discusión de CodeProject. También exprese mi opinión que es mejor usar una clase a la cual se acedan constantes estáticas publicas. Un tipo prácticamente contesto

Esto es taaaaaaan…. de los 90’s, el guru de mi compañía ha dicho que siempre hay que usar defines para salvar memoria. Ahora lo comprendemos mejor.

Esa era mi espinita;  la memoria. Debo de decir que estoy de acuerdo con él. En tiempos como estos, hay que ahorrar espacio en memoria, sobre todo en dispositivos portátiles. Sin embargo, esta el problema de los tiempos de compilación.

Mi conclusión sobre este tema es; hay que distribuir bien los #defines (ya sean constantes o macros). De preferencia hacer esta inclusión en los archivos que se van a usar en el mismo .cpp.

Notas Rápidas – OpenGL ES. Introducción Parte 4

Fragment Shader

El Fragment Shader implementa los metodos programables de proposito general para operar los fragmentos salidos de la etapa de rasterizacion. Los tipos de entrada que maneja son:

Variables de diversidad (varying). Las salidas del vertex shader que son generadas por la unidad de rasterización por cada fragmento usando la interpolacion.

Uniformes (uniform). Datos constantes usados por los fragment shaders.

Muestreos (samplers). Un tipo especifico de uniformes que representa la texturas por el fragment shader.

Programa de Shader. Es el código fuente o ejecutable que describe las operaciones que sera ejecutado por sobre el fragmento,

El fragment shader puede ya que descarte el fragmento o genere un color referenciado como gl_FragColor. El color, la profundidad y locacion de coordenadas en pantalla (Xw, Yw) generada por la rasterización convierte las entradas para la etapa de operaciones por fragmento del pipeline de OpenGL ES 2.0.

Entradas y salidas del Fragment ShaderEl siguiente ejemplo de Fragment Shader puede ser acoplado con el Vertex Shader del ejemplo anterior para el dibujado de un triángulo de un sombreado Gouraud.

Un pequeño ejemplo de un Fragment Shader

precision medium float;

varying vec4 v_color;  //Entrada del color del vertice desde el Vertex Shader

void main(void)
{
   gl_FragColor = v_color;  //Aqui se le pasa el valor del color a cada vertice
}

Notas Rápidas – OpenGL ES. Introducción Parte 3

Rasterización

Es la fase donde el primitivo apropiado (point-sprite, línea, o triángulo) es dibujado. Es el proceso donde convierte los primitivos en un conjunto de fragmentos de dos dimensiones, las cuales son procesadas por el Fragment Shader.

Estos fragmentos de dos dimensiones representan los pixeles que pueden ser dibujados en pantalla.

Etapa de rasterizacion del Pipeline de OpenGL ES

Curso de Android básico

Les recomiendo este curso básico de Android. Empieza el 7 de enero. Esta divido en dos partes. La 2da. parte empieza 9 de febrero.

Vale la pena. Hay vídeo tutoriales, ejemplos, exámenes, ejercicios/laboratorios.
Pueden cursarlo de manera gratuita. Pero si quieren tener una certificación virtual de la Universidad de Maryland hay que pagar una cantidad de $650.00 Pesos MX.

Parte 1 – Empieza el 7 de enero

Parte 2 – Empieza el 9 de febrero