Acceso a pixels mediante punteros...

Started by MythomizeR, November 14, 2008, 08:48:11 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

MythomizeR

Pretendo modificar el pixel 'n' de 'gráfico' de 32 bits a través del puntero 'pbuffer' de la forma habitual en c, por lo que hago:

pointer pbuffer2, pbuffer;

pbuffer=map_buffer(0,grafico);
*(pbuffer+n)=4;

y sin embargo, el compilador me da el error: Pointer required (")"), cosa que no entiendo pues aparentemente está todo correcto...

Otra cosa es, ¿pbuffer quizás debería ser un 'dword pointer' (lo digo porque trabajo en modo 32 bits como he dicho) o con solamente 'pointer' es suficiente?

Un saludo.

Editado:

Si 'pbuffer' lo declaro aparte como:

pointer pbuffer;

entonces sí que funciona, por lo que parece un bugillo...

SplinterGU

claro, pero no es un bug... esto es...

[int] pointer pbuffer2, pbuffer...

entonces pbuffer no es puntero sino int.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

MythomizeR


MythomizeR

Por cierto, siguiendo con el tema de los punteros, por lo que he podido comprobar, _creo_ que en Bennu no se puede por ejemplo obtener la dirección de un array o primer elemento de este por medio de su identificador al igual que en C, y por tanto, tampoco acceder a sus elementos a través de éste con el formato de punteros típico citado *(array+n), pues creo que internamente no es tratado como tal...

Ya digo que creo, porque si tengo:

int array[10];
int *parray;


y hago:

parray=array;

obtengo un error de puntero requerido, y por tanto menos todavía puedo hacer algo como *(array+n)...

Luego la cuestión es si tienes pensado implementar esto (aunque ya está bastante bien Bennu con lo que tiene), pero es que pedir es gratis :-)

Un saludo.

SplinterGU

parray = &array;

en bennu, poner nombre del array solo es como poner array[0];
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

MythomizeR

Bueno, pues si es característica del lenguaje bien pues :-)

Un saludo.