int * xgraph = NULL; // OFFSET de la tabla gráfica del proceso


Esta variable predefinida es PUBLIC, lo que significa que cada proceso tendrá su propio valor en su variable xgraph.

Esta variable es de nivel avanzado, por lo que requiere cierta experiencia para su utilización.

La variable local xgraph (extended graphic) sirve para utilizar gráficos múltiples. Para definir el gráfico de un proceso como un conjunto de gráficos de los cuales se debe ver el más acorde con el ángulo del proceso (especificado en la variable local angle).

Es decir, si se define la variable xgraph, se ignorará la variable local graph que normalmente define el gráfico del proceso y se utilizará un gráfico u otro en función de la variable angle.

Por lo tanto, al cambiar el ángulo del proceso ya no aparecerá el gráfico del proceso rotado, sino que utilizará este ángulo como seleccionador del gráfico del proceso (dentro del conjunto definido).

Por defecto la variable xgraph valdrá NULL en todos los procesos, lo que indica que éstos no van a utilizar gráficos múltiples.

La utilidad de los gráficos múltiples reside en poder realizar juegos en perspectiva, donde un cambio de ángulo en un proceso no implica una rotación de su gráfico, sino el cambio del gráfico por otro dibujado con otra perspectiva (dibujado con otro ángulo dentro de dicha perspectiva).

Forma de empleo de los gráficos múltiples

1 - En primer lugar se deben realizar los diferentes dibujos que van a representar al gráfico del proceso con diferentes ángulos en la perspectiva. Éstos serán un número finito de vistas del gráfico, como puede ser 4, 8, 12, etc., (o cualquier otro número entero mayor que 1).

Se debe tener en cuenta que si se definen 4 vistas, se estará definiendo una vista diferente cada 90 grados, si se definen 8 vistas, cada 45 grados, etc.

2 - Se deben ordenar dichos gráficos según su ángulo; primero el gráfico que se corresponderá con el ángulo 0 (hacia la derecha) y, después, el resto en sentido contrario a las agujas del reloj.

3 - Se debe crear una tabla, generalmente en los datos globales, inicializada con los siguientes valores:

  Número de vistas del gráfico,
  Código del gráfico para el ángulo 0 (primera vista),
  Código del siguiente ángulo (segunda vista),
  ...

Nota: Esta tabla debe ser de datos simples (de tipo int, enteros de 32 bit con signo).

Es indiferente el nombre que se le de a dicha tabla, por ejemplo, si se define un gráfico múltiple con 4 vistas, que deben ser los gráficos con el código 10, 11, 12, y 13, la definición de la tabla podría ser:

  int   tabla_grafico1[]={4, 10, 11, 12, 13};
  ....

4 - Por último, se debe asignar la dirección de esta tabla dentro de la memoria del ordenador a la variable local xgraph del proceso, lo que se haría con la siguiente sentencia (dentro del proceso en cuestión):

  xgraph = tabla_grafico1;

Una vez definido el gráfico múltiple, el sistema utilizará en cada imagen del juego el gráfico correspondiente al ángulo que más se aproxima al ángulo del proceso (el indicado en su variable angle).

Para desactivar el sistema de gráficos múltiples en un proceso, simplemente se debe volver a poner a 0 la variable xgraph.

Importante: Si dentro de la tabla que define el conjunto de gráficos se pone algún código de gráfico con signo negativo, entonces aparecerá este gráfico espejado horizontalmente, es decir, si el gráfico estaba mirando hacia la derecha, aparecerá mirando hacia la izquierda, y viceversa.

Nota: El sistema de gráficos múltiples está desactivado en las ventanas de modo 3D, ya que se utiliza una renderización por polígonos.


Ver: Datos locales