Entrar
¿Nuevo usuario? Inscribirme
smalltalking · Un lugar para el estudio y desarrollo de Ambientes de Objetos virtuales.
? ¿Ya estás suscrito? Entra a Yahoo!

Consejos

¿Sabías que...?
Podés cambiar el orden de los mensajes. Simplemente hacé clic en el enlace de columna fecha. Tus preferencias se guardarán, por lo tanto no necesitarás hacerlo otra vez cuando vuelvas a entrar.

Mensajes

  Mensajes Ayuda
Avanzado
Mensajes 16874 - 16903 de 17190   Más reciente  |  < Más reciente  |  Más antiguo >  |  Más antiguo
Mensajes: Mostrar resúmenes de los mensajes   (Agrupar por tema) Clasificar por fecha v  
#16903 De: kikoGregoris <kikogregoris@...>
Fecha: Mié, 7 de Ene, 2009 12:04 pm
Asunto: VS: Pasando structuras a una DLL
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Gente
 
Bueno estoy con un problema con las llamadas a funciones de Jet3D.
El tema es que segun la forma de obtener un estructura desde la DLL, ocurre que al pasarla nuevamente a la DLL se produce un error muy extraño. La estructura toma valores incorrector dentro de la DLL!!!!!!!!.
Tratando de aclarar paso a mostrar las variantes, que andan y que no andan.
Si la funcion es esta:
JETAPI
const jeVec3d * JETCC jeVertArray_GetVertByIndex(const jeVertArray *VArray, jeVertArray_Index Index)
{
jeVertArray_Vert *Vert2;
assert(jeVertArray_IsValid(VArray) == JE_TRUE);
assert(Index >= 0 && Index < VArray->MaxVerts);
assert(Index != JE_VERTARRAY_NULL_INDEX);
Vert2 = &VArray->Verts[Index];
assert(Vert2->RefCount > 0);
return &Vert2->Vert;
}
O esta:
JETAPI jeVec3d * jeVertexArrayGetVertByIndex(
const jeVertArray *VArray, jeVertArray_Index Index )
{
jeVertArray_Vert *Vert2;
assert(jeVertArray_IsValid(VArray) == JE_TRUE);
assert(Index >= 0 && Index < VArray->MaxVerts);
assert(Index != JE_VERTARRAY_NULL_INDEX);
Vert2 = &VArray->Verts[Index];
assert(Vert2->RefCount > 0);
return &Vert2->Vert;
}
Luego al pasar el Vector resultante a esta funcion:
JETAPI
void JETCC jeVertArraySetVertByIndex(jeVertArray *VArray, jeVertArray_Index Index, jeVec3d *Vert)
{
jeVertArray_Vert *Vert2;
assert(jeVertArray_IsValid(VArray) == JE_TRUE);
assert(Index >= 0 && Index < VArray->MaxVerts);
assert(Index != JE_VERTARRAY_NULL_INDEX);
Vert2 = &VArray->Verts[Index];
assert(Vert2->RefCount > 0);
Vert2->Vert = *Vert;
}
El vector aquí dentro toma valores incorrectos.
Esta:
JETAPI
const jeVec3d * JETCC jeVertArray_GetVertByIndex(const jeVertArray *VArray, jeVertArray_Index Index)
Es la versión oficial, la segunda es una prueba mia.
Por el contrario, si declaro la función así:
JETAPI
void JETCC jeVertArrayGetVertByIndex(const jeVertArray *VArray, jeVertArray_Index Index, jeVec3d * V)
{
jeVertArray_Vert *Vert2;
assert(jeVertArray_IsValid(VArray) == JE_TRUE);
assert(Index >= 0 && Index < VArray->MaxVerts);
assert(Index != JE_VERTARRAY_NULL_INDEX);
Vert2 = &VArray->Verts[Index];
assert(Vert2->RefCount > 0);
*V = Vert2->Vert;
}
Luego cuando le paso el vector a:
JETAPI
void JETCC jeVertArraySetVertByIndex(jeVertArray *VArray, jeVertArray_Index Index, jeVec3d *Vert)
No hay drama el vector tiene valores correctos!!!!!!!!!!!!
 
Lo mismo me pasa con otras funciones que devuelven otras estructuras de la misma forma que describo aquí.
 
Estoy sospechando que aquel error con el callback que les contaba hace algun tiempo tiene que ver con esto, pero no puedo confirmarlo.
El tema es que nosé de quien es el problema, si es de VS o es de C++.
Yo implemente los métodos asi:
JetDLL>>jeVertArraySetVertByIndex: pJetVertexArray index: pIndex vertex: pJetVector3D
"API uncommented"
<api: '_jeVertArray_SetVertByIndex@12' ulong ulong struct none>
^self invalidArgument
JetDLL>>jeVertArrayGetVertByIndex: pJetVertexArray index: pInteger
"API uncommented"
<api: '_jeVertArrayGetVertByIndex@12' ulong ulong ulongReturn>
^self invalidArgument
O
JetDLL>>jeVertArrayGetVertByIndex: pJetVertexArray index: pInteger vertex: pJetVertex
"API uncommented"
<api: '_jeVertArrayGetVertByIndex@12' ulong ulong struct none>
^self invalidArgument
 
Lo curioso es que si objetengo el Vector con:
JETAPI
const jeVec3d * JETCC jeVertArray_GetVertByIndex(const jeVertArray *VArray, jeVertArray_Index Index) y el método #jeVertArraySetVertByIndex declara el argumento como un ULONG, luego el VECTOR en el lado de la DLL es CORRECTO !!!!!!!!.
Pero si lo declaro como STRUCT, no me permite mandarlo por que son tipos incompatibles(Espera un ULONG)
El tema es que debería implementar mis propias funciones en la DLL para evitar los inconvenientes, no es que no quiera hacerlo, pero me gustaria mucho saber:
Cual es el problema?. De quien es el problema ? Vs o C++ ?.
Cual es la solución correcta ?
 
Bueno, espero no abrumar con esto.
saludos kiko
 
 



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16902 De: "Angel \"Java\" Lopez" <ajlopez@...>
Fecha: Mié, 31 de Dic, 2008 10:24 am
Asunto: Re: [objetos] Fin de año y Próxima reunión
ajlopez2000
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola gente!
 
Yo puedo cualquier domingo de Enero (en general, los sabados estoy dando cursos).
Podria este sabado 3 de Enero.
 
Nos leemos!
 
 
 
----- Original Message -----
Sent: Tuesday, December 30, 2008 10:34 AM
Subject: [objetos] Fin de año y Próxima reunión

Estimados,
Estas épocas, de fin de año, me hacen reflexionar sobre
qué cosas he hecho durante el año y cómo me gustaría
arrancar el siguiente.

 

.


#16901 De: "Elvio Fernandez" <elvio.fernandez@...>
Fecha: Mar, 30 de Dic, 2008 3:51 pm
Asunto: Re: [objetos] Fin de año y Próxima reunión
elvisman_780
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Ale, en enero yo puedo. La unica semana de enero que no voy a estar es la semana del 12.
Haciendo esta salvedad estoy firme para reuninrnos.

Saludos

Elvio


El 30 de diciembre de 2008 9:34, Alejandro F. Reimondo <aleReimondo@...> escribió:

Estimados,
Estas épocas, de fin de año, me hacen reflexionar sobre
qué cosas he hecho durante el año y cómo me gustaría
arrancar el siguiente.

Para ver que hemos hecho aquí, creo que es sano darle una
hojeada al registro que quedó en esta lista; al menos
como para recordar las actividades que hemos realizado
(creo que todas anunciadas aquí) y cuánto hemos
incentivado a realizar actividades según nuestros objetivos
en esta lista.

En lo que respecta a cómo arrancar el año que viene,
me gustaría hacerlo organizando una reunión que
esté mas focalizada en lo nuestro (esforzandonos
para ir dejando atrás lo "técnico", ese yunque que nos
ata a hablar de smalltalk y otros temas tan cercanos
a lo que abunda, por ser quizás, lo mas fácil y entendible).
Creo que desde hace años tenemos material como
para realizar este "arranque en nuestros temas" de una
forma grupal y no en la soledad del estudio de cada uno.

Podemos usar entre otros contenidos, publicados en
nuestro sitio y mas allá...
- Comportamiento de la Información - de Luc Claeys
- Time and the Observer - Daniel C. Dennet
- Seen is Believing - Daniel C. Dennet
- Papers y video de presentación de Richard Gabriel en S3
- otros articulos y links propuestos en esta lista.
[*]

En este año hemos hecho varias veces la reunión en el bar
que está en la plaza al lado de la Biblioteca Nacional,
quizás sería bueno ver si esta vez entramos en la biblioteca...
averiguar por algún lugar dónde nos podamos reunir allí,
digo, quizás es un buen espacio para arrancar el año
y auspiciar de alguna forma el avance, que aunque sea minimo,
deberíamos poder lograr en lo nuestro en este año que viene.

Cuál fecha sería apopiada para la reunión?
Quienes se anotan?

hasta el año que viene,
Ale.

[*] Quizás no es necesaria la aclaración que sigue, pero...
para quienes no me conocen:
los contenidos de esta lista no reflejan mi forma de pensar;
son solo textos que considero de valor para realizar
un trabajo conjunto sobre nuestros temas de interés.



#16900 De: "Elvio Fernandez" <elvio.fernandez@...>
Fecha: Mar, 30 de Dic, 2008 3:40 pm
Asunto: Re: [objetos] RE: Jet3D y VS
elvisman_780
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Kiko,

"Por otra parte, creí haber visto algun goodies para trabajar con DirectImput en  www.parcplace.com/support/vsesupp/VSEGoodies/  pero claro ahora no estan.
Puede ser o me parecio ?."

Creo yo, mas o menos, alrededor de dos meses atras, la gente de Cincom quito los links del VSE, o sea lo que era www.parcplace.com/***/***.

Saludos

Elvio





El 22 de diciembre de 2008 13:31, kikoGregoris <kikogregoris@...> escribió:

Hola Ale
 
Bueno, me deja mas tranquilo saber que no siempre es tan duro.
Te comento y les comento que Jet3D, si bien no esta a la altura de otros engine ( gráficamente hablando ) permite recompilar el BSP a muy bajo costo y es por eso que lo hacer muy atractivo  y además la interface esta en C, Gracias dios jajajaj.
 
Por otra parte, creí haber visto algun goodies para trabajar con DirectImput en  www.parcplace.com/support/vsesupp/VSEGoodies/  pero claro ahora no estan.
Puede ser o me parecio ?.
 
saludos kiko
 
 
 
 
saludos kiko

--- El lun 22-dic-08, Alejandro F. Reimondo <aleReimondo@...> escribió:
De: Alejandro F. Reimondo <aleReimondo@...>
Asunto: Re: [objetos] RE: Jet3D y VS
Para: smalltalking@...
Fecha: lunes, 22 de diciembre de 2008, 11:03 am


Hola kiko,
A veces ocurre que las cosas se arreglan de golpe al recopilar todo el proyecto.
Es algo no muy frecuente, pero que me ha pasado; tiene que ver con
 cómo está definido el proyecto en C y a veces en el orden en que se
 compilan librerías.
 
>Me pregunto y les pregunto, es siempre tan duro el trabajo con una DLL ?.
 
No, cada vez te va a ir siendo mas simple, a medidas que conozcas
 como tenes que mover las palancas.
 
>Digo porque podría haber estado años renegando y no encontrar el problema.
 
jajaja creo que en algun momento (antes de un par de años)
 hubieras apretado, quizás por error, el botón
 para que recompile todo :-P
 
...los beneficios del encapsulamiento.
 
>Por otra parte el pasaje de los vertices a la DLL es otra cosa que no me paso nunca.
>Esto es lo que Ale hacía en genesis3D para pasarle un array de estruturas
 
No vi en detalle lo mio, ni lo tuyo; pero se me ocurre que si vos
 recibis el puntero y no agregas/sacas nada, podes pasarlo directamente.
En lo mío, quizas estoy armando la estructura en smalltalk,
 no se... tambien, claro, puede ser innecesario lo que yo haya hecho.
 
hasta pronto
Ale.
 
----- Original Message -----
From: kikoGregoris
Sent: Friday, December 19, 2008 2:01 PM
Subject: [objetos] RE: Jet3D y VS

Hola Ale, lista
 
Bueno finalmente solucione el error, aunque no puedo explicar que es lo que paso en realidad.
 
El tema es que luego de cambier el orden de los parametro del callback en la DLL y recompilar la DLL salio andando.
No me explico cual es la verdadera razon para lo ocurrido, pero es muy loco.
 
Me pregunto y les pregunto, es siempre tan duro el trabajo con una DLL ?.
Digo porque podría haber estado años renegando y no encontrar el problema.
 
 
Por otra parte el pasaje de los vertices a la DLL es otra cosa que no me paso nunca.
Esto es lo que Ale hacía en genesis3D para pasarle un array de estruturas
 
>>internalize: aCollection
 "Returns an internal representation of instances of the receiver in aCollection. "
 | bits |
 bits := WriteStream on: (ByteArray new: aCollection first asParameter size).
 aCollection do: [:vertex| bits nextPutAll: vertex asParameter ].
 ^bits contents
 
Y en el api declaraba el argumento como struct.
 
Yo hacía lo mismo y resulto que no funciono y tuve que hacer esto:
 
Este es el método que se activa con el callback:
 
drawFaceCB:  context vertexs:  aJetTransformedLitV ertex   numVertex:  count   
 
"Display aPolygon formed from aCollection of JetTransformedLitVe rtex."
 
  |vertexs modVertexs|
 
vertexs:= Array new: count.
0 to:(count-1) do:[:index | vertexs at: (index +1)
                                                                put: (JetTransformedLitV ertex fromPointer: (aJetTransformed LitVertex+ (index*64))) ].
 
vertexs  do:[:each | each  a:128; r:255 ; g:0 ;b: 0; yourself].
self engine 
    renderPolygon: aJetTransformedLitV ertex   asExternalAddress

               texture: nil  
               flags: nil 
      numVertex: count.
 
>>jeEngineRenderPoly: pEngine
                                             points: pPoints
                                    numPoints: numPoints
                                           texture: pBitmap
                                                flags: flags
 " API Uncommented.
 RenderPoly : if Texture is null, we Gouraud shade. "
 <api: '_jeEngine_RenderPo ly@20' ulong ulong  long ulong long none>
 ^self invalidArgument
 
Como ven yo paso directamente la dirección que me viene de la DLL como un ulong y no como hacia Ale al pasar un struct que el formaba con los vértices.
 
 
Es normal esto o hay algo fuera de lo comun ?
Me refiero a la solucion de ALE con referencia a la mía
 
saludos kiko
 
PD: No sé si se entiende
 



¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile. yahoo.com/ onesearch



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/


#16899 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mar, 30 de Dic, 2008 3:21 pm
Asunto: Re: [objetos] GUI en VS ?
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 

kiko,
Paneles con tabs y notebook hay en los services de VS... creo que es eso a lo que te referís.
Si no es así, te aseguro que hacer tabs es muy simple (y en mi opinion, es conveniente hacertelos vos) con ToolBar y haciendo aparecer/desaparecer composite panes.
Ale.
 
 
----- Original Message -----
Sent: Monday, December 22, 2008 1:24 PM
Subject: Re: [objetos] GUI en VS ?

Hola Ale
 
Gracias una vez mas.
Con respecto a WB, me habia quedado con la version de express donde ApplicationCoordinator no existia jajaja.
 
Voy a ver como es ese truco para hacer que la interface se torne dínamica, luego les cuento.
 
 
Estuve mirando los widget que trae WB y me faltarían algunos, como un tabControl y alguno mas.
Estuve buscando goodies para VS y además de los de smalltaking, encontré   http://www.tec4.ca/Smalltalk/ y veo que tiene algo de lo que quiero, pero segun pude ver son para VS 313.
Intente instalarlos y me tira un error, donde dice que la clase Application ya existe.
Alguien los uso ?.
 
Alguíen tiene algunos controles echos del tipo que necesitaría ? Y pueda compartir, claro jajaj.
Es muy costoso hacer esos controles ?.
 
También veo que los goodies que había aca: www.parcplace.com/support/vsesupp/VSEGoodies/  ya no existen o no estan disponibles.
Alguien tiene idea si había algo de utilidad y de donde sacarlos.
 
 
Saludos kiko
 


--- El lun 22-dic-08, Alejandro F. Reimondo <aleReimondo@...> escribió:
De: Alejandro F. Reimondo <aleReimondo@...>
Asunto: Re: [objetos] GUI en VS ?
Para: smalltalking@...
Fecha: lunes, 22 de diciembre de 2008, 11:16 am



Hola,

>En este momento uso ApplicationCoordina tor para mi demo.

> El tema es, debo dejar de usar esto y pasar a usar ViewManager ¿?.

No.

EL WBuilder puede generarte la interfáz de un coordinator.

Fijate al guardar la interfáz, hacela heredar de algun ApplicationCoordina tor

 (fijate en el diálogo al guardar la ventana, que allí hay un radio para

 elegir la jerarquía y un combo para elejir la superclase).

Todo lo demás es idéntico.

>Para poder usar WB ¿?. O lo conveniente sería que arme la interface

> con los widget de WB pero usando  ApplicationCoordina tor ¿?.

>El tema aquí es que no hay un editor de GUI, tendría que hacerlo

> a pata.  Se entiende ¿?.

EL WB trabaja con ambos mecanismos; la diferencia que hay entre

 un ViewManager y un AppCoordinator, es que un ViewManager

 tiene solo un TopPane, y el AppCoordinator puede tener uno,

 mas de uno (y coordinar las vistas abriendo y cerrandolos/ ocultandolos

 dinamicamente) o ninguno (por ejemplo en un servidor de red via Sockets).

>También esta  el problema de que WB es estático, no permite agregar

> widget en runtime y eso complica un poco.

Con un poco de maña seguramenet vas a darte cuenta como eliminar

 y agregar dinámicamente paneles (fijate que el wb agrega mensajes

 para hacerlo); asi, el truco es tener un panel (normalmente un panel

 de borde u otro que no se vea) y agregar dinámicamente un

 CompositePane adentro... luego cuando se tiene que cambiar por

 otro, eliminarlo.

Así el CompositePane maneja toda la complejidad de lo que tiene

 adentro (normalmente cunmple un rol de editor) sin quedarte esto

 en el coordinador.

>Otra cosa, WB es compatible con  LSW VisionSmalltalk

La VM demo para evaluar la comatibilidad con VS ejecuta una

 aplicación VS entera, tenga o no WindowBuilder, es completamente

 transparente.

hasta pronto,

Ale.

 

 
 
----- Original Message -----
Sent: Friday, December 19, 2008 2:16 PM
Subject: [objetos] GUI en VS ?

Hola Gente

Estoy intentando hacer un editor de mapas que me permita construir la geometría en tiempo real y aprovechar las características dinámicas de ST, a la hora de crear un mapa.

Los editores mas comunes son del tipo que se ve en la captura   .

Como ven tiene algunos paneles y comboBox y otros widget. Yo conozco  como funciona WindowBuilder y me pregunto esto:

En este momento uso ApplicationCoordina tor para mi demo . El tema es, debo dejar de usar esto y pasar a usar ViewManager ¿?.

Para poder usar WB ¿?. O lo conveniente sería que arme la interface con los widget de WB pero usando  ApplicationCoordina tor ¿?.

El tema aquí es que no hay un editor de GUI, tendría que hacerlo a pata.  Se entiende ¿?.

También esta  el problema de que WB es estático, no permite agregar widget en runtime y eso complica un poco.

Otra cosa, WB es compatible con  LSW VisionSmalltalk

Cualquier idea es bienvenida

Saludos kiko




Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16898 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mar, 30 de Dic, 2008 3:18 pm
Asunto: Sobre Spam (era: [objetos] GUI en VS ?)
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 

Hola kiko, Lista,
Los emails que aparecen hoy fueron marcados como Spam en la lista
 y esto hizo que no se publiquen rapidamente.
p/f disculpen las molestias que nos causa esta situación, en la que
 el servicio de yahoo separa los mails marcados como spam
 de los que debemos autorizar.
Ale.
----- Original Message -----
Sent: Monday, December 22, 2008 1:24 PM
Subject: Re: [objetos] GUI en VS ?

Hola Ale
 
Gracias una vez mas.
Con respecto a WB, me habia quedado con la version de express donde ApplicationCoordinator no existia jajaja.
 
Voy a ver como es ese truco para hacer que la interface se torne dínamica, luego les cuento.
 
 
Estuve mirando los widget que trae WB y me faltarían algunos, como un tabControl y alguno mas.
Estuve buscando goodies para VS y además de los de smalltaking, encontré   http://www.tec4.ca/Smalltalk/ y veo que tiene algo de lo que quiero, pero segun pude ver son para VS 313.
Intente instalarlos y me tira un error, donde dice que la clase Application ya existe.
Alguien los uso ?.
 
Alguíen tiene algunos controles echos del tipo que necesitaría ? Y pueda compartir, claro jajaj.
Es muy costoso hacer esos controles ?.
 
También veo que los goodies que había aca: www.parcplace.com/support/vsesupp/VSEGoodies/  ya no existen o no estan disponibles.
Alguien tiene idea si había algo de utilidad y de donde sacarlos.
 
 
Saludos kiko
 


--- El lun 22-dic-08, Alejandro F. Reimondo <aleReimondo@...> escribió:
De: Alejandro F. Reimondo <aleReimondo@...>
Asunto: Re: [objetos] GUI en VS ?
Para: smalltalking@...
Fecha: lunes, 22 de diciembre de 2008, 11:16 am



Hola,

>En este momento uso ApplicationCoordina tor para mi demo.

> El tema es, debo dejar de usar esto y pasar a usar ViewManager ¿?.

No.

EL WBuilder puede generarte la interfáz de un coordinator.

Fijate al guardar la interfáz, hacela heredar de algun ApplicationCoordina tor

 (fijate en el diálogo al guardar la ventana, que allí hay un radio para

 elegir la jerarquía y un combo para elejir la superclase).

Todo lo demás es idéntico.

>Para poder usar WB ¿?. O lo conveniente sería que arme la interface

> con los widget de WB pero usando  ApplicationCoordina tor ¿?.

>El tema aquí es que no hay un editor de GUI, tendría que hacerlo

> a pata.  Se entiende ¿?.

EL WB trabaja con ambos mecanismos; la diferencia que hay entre

 un ViewManager y un AppCoordinator, es que un ViewManager

 tiene solo un TopPane, y el AppCoordinator puede tener uno,

 mas de uno (y coordinar las vistas abriendo y cerrandolos/ ocultandolos

 dinamicamente) o ninguno (por ejemplo en un servidor de red via Sockets).

>También esta  el problema de que WB es estático, no permite agregar

> widget en runtime y eso complica un poco.

Con un poco de maña seguramenet vas a darte cuenta como eliminar

 y agregar dinámicamente paneles (fijate que el wb agrega mensajes

 para hacerlo); asi, el truco es tener un panel (normalmente un panel

 de borde u otro que no se vea) y agregar dinámicamente un

 CompositePane adentro... luego cuando se tiene que cambiar por

 otro, eliminarlo.

Así el CompositePane maneja toda la complejidad de lo que tiene

 adentro (normalmente cunmple un rol de editor) sin quedarte esto

 en el coordinador.

>Otra cosa, WB es compatible con  LSW VisionSmalltalk

La VM demo para evaluar la comatibilidad con VS ejecuta una

 aplicación VS entera, tenga o no WindowBuilder, es completamente

 transparente.

hasta pronto,

Ale.

 

 
 
----- Original Message -----
Sent: Friday, December 19, 2008 2:16 PM
Subject: [objetos] GUI en VS ?

Hola Gente

Estoy intentando hacer un editor de mapas que me permita construir la geometría en tiempo real y aprovechar las características dinámicas de ST, a la hora de crear un mapa.

Los editores mas comunes son del tipo que se ve en la captura   .

Como ven tiene algunos paneles y comboBox y otros widget. Yo conozco  como funciona WindowBuilder y me pregunto esto:

En este momento uso ApplicationCoordina tor para mi demo . El tema es, debo dejar de usar esto y pasar a usar ViewManager ¿?.

Para poder usar WB ¿?. O lo conveniente sería que arme la interface con los widget de WB pero usando  ApplicationCoordina tor ¿?.

El tema aquí es que no hay un editor de GUI, tendría que hacerlo a pata.  Se entiende ¿?.

También esta  el problema de que WB es estático, no permite agregar widget en runtime y eso complica un poco.

Otra cosa, WB es compatible con  LSW VisionSmalltalk

Cualquier idea es bienvenida

Saludos kiko




Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16897 De: kikoGregoris <kikogregoris@...>
Fecha: Lun, 22 de Dic, 2008 4:24 pm
Asunto: Re: [objetos] GUI en VS ?
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Ale
 
Gracias una vez mas.
Con respecto a WB, me habia quedado con la version de express donde ApplicationCoordinator no existia jajaja.
 
Voy a ver como es ese truco para hacer que la interface se torne dínamica, luego les cuento.
 
 
Estuve mirando los widget que trae WB y me faltarían algunos, como un tabControl y alguno mas.
Estuve buscando goodies para VS y además de los de smalltaking, encontré   http://www.tec4.ca/Smalltalk/ y veo que tiene algo de lo que quiero, pero segun pude ver son para VS 313.
Intente instalarlos y me tira un error, donde dice que la clase Application ya existe.
Alguien los uso ?.
 
Alguíen tiene algunos controles echos del tipo que necesitaría ? Y pueda compartir, claro jajaj.
Es muy costoso hacer esos controles ?.
 
También veo que los goodies que había aca: www.parcplace.com/support/vsesupp/VSEGoodies/  ya no existen o no estan disponibles.
Alguien tiene idea si había algo de utilidad y de donde sacarlos.
 
 
Saludos kiko
 


--- El lun 22-dic-08, Alejandro F. Reimondo <aleReimondo@...> escribió:
De: Alejandro F. Reimondo <aleReimondo@...>
Asunto: Re: [objetos] GUI en VS ?
Para: smalltalking@...
Fecha: lunes, 22 de diciembre de 2008, 11:16 am



Hola,

 

>En este momento uso ApplicationCoordina tor para mi demo.

> El tema es, debo dejar de usar esto y pasar a usar ViewManager ¿?.

 

No.

EL WBuilder puede generarte la interfáz de un coordinator.

Fijate al guardar la interfáz, hacela heredar de algun ApplicationCoordina tor

 (fijate en el diálogo al guardar la ventana, que allí hay un radio para

 elegir la jerarquía y un combo para elejir la superclase).

Todo lo demás es idéntico.

 

>Para poder usar WB ¿?. O lo conveniente sería que arme la interface

> con los widget de WB pero usando  ApplicationCoordina tor ¿?.

>El tema aquí es que no hay un editor de GUI, tendría que hacerlo

> a pata.  Se entiende ¿?.

 

EL WB trabaja con ambos mecanismos; la diferencia que hay entre

 un ViewManager y un AppCoordinator, es que un ViewManager

 tiene solo un TopPane, y el AppCoordinator puede tener uno,

 mas de uno (y coordinar las vistas abriendo y cerrandolos/ ocultandolos

 dinamicamente) o ninguno (por ejemplo en un servidor de red via Sockets).

 

>También esta  el problema de que WB es estático, no permite agregar

> widget en runtime y eso complica un poco.

 

Con un poco de maña seguramenet vas a darte cuenta como eliminar

 y agregar dinámicamente paneles (fijate que el wb agrega mensajes

 para hacerlo); asi, el truco es tener un panel (normalmente un panel

 de borde u otro que no se vea) y agregar dinámicamente un

 CompositePane adentro... luego cuando se tiene que cambiar por

 otro, eliminarlo.

Así el CompositePane maneja toda la complejidad de lo que tiene

 adentro (normalmente cunmple un rol de editor) sin quedarte esto

 en el coordinador.

 

>Otra cosa, WB es compatible con  LSW VisionSmalltalk

La VM demo para evaluar la comatibilidad con VS ejecuta una

 aplicación VS entera, tenga o no WindowBuilder, es completamente

 transparente.

 

hasta pronto,

Ale.

 

 

 
 
----- Original Message -----
Sent: Friday, December 19, 2008 2:16 PM
Subject: [objetos] GUI en VS ?

Hola Gente

 

 

Estoy intentando hacer un editor de mapas que me permita construir la geometría en tiempo real y aprovechar las características dinámicas de ST, a la hora de crear un mapa.

 

Los editores mas comunes son del tipo que se ve en la captura   .

Como ven tiene algunos paneles y comboBox y otros widget. Yo conozco  como funciona WindowBuilder y me pregunto esto:

 

En este momento uso ApplicationCoordina tor para mi demo . El tema es, debo dejar de usar esto y pasar a usar ViewManager ¿?.

Para poder usar WB ¿?. O lo conveniente sería que arme la interface con los widget de WB pero usando  ApplicationCoordina tor ¿?.

El tema aquí es que no hay un editor de GUI, tendría que hacerlo a pata.  Se entiende ¿?.

 

También esta  el problema de que WB es estático, no permite agregar widget en runtime y eso complica un poco.

Otra cosa, WB es compatible con  LSW VisionSmalltalk

 

Cualquier idea es bienvenida

 

Saludos kiko




Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16896 De: kikoGregoris <kikogregoris@...>
Fecha: Lun, 22 de Dic, 2008 4:31 pm
Asunto: Re: [objetos] RE: Jet3D y VS
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Ale
 
Bueno, me deja mas tranquilo saber que no siempre es tan duro.
Te comento y les comento que Jet3D, si bien no esta a la altura de otros engine ( gráficamente hablando ) permite recompilar el BSP a muy bajo costo y es por eso que lo hacer muy atractivo  y además la interface esta en C, Gracias dios jajajaj.
 
Por otra parte, creí haber visto algun goodies para trabajar con DirectImput en  www.parcplace.com/support/vsesupp/VSEGoodies/  pero claro ahora no estan.
Puede ser o me parecio ?.
 
saludos kiko
 
 
 
 
saludos kiko

--- El lun 22-dic-08, Alejandro F. Reimondo <aleReimondo@...> escribió:
De: Alejandro F. Reimondo <aleReimondo@...>
Asunto: Re: [objetos] RE: Jet3D y VS
Para: smalltalking@...
Fecha: lunes, 22 de diciembre de 2008, 11:03 am


Hola kiko,
A veces ocurre que las cosas se arreglan de golpe al recopilar todo el proyecto.
Es algo no muy frecuente, pero que me ha pasado; tiene que ver con
 cómo está definido el proyecto en C y a veces en el orden en que se
 compilan librerías.
 
>Me pregunto y les pregunto, es siempre tan duro el trabajo con una DLL ?.
 
No, cada vez te va a ir siendo mas simple, a medidas que conozcas
 como tenes que mover las palancas.
 
>Digo porque podría haber estado años renegando y no encontrar el problema.
 
jajaja creo que en algun momento (antes de un par de años)
 hubieras apretado, quizás por error, el botón
 para que recompile todo :-P
 
...los beneficios del encapsulamiento.
 
>Por otra parte el pasaje de los vertices a la DLL es otra cosa que no me paso nunca.
>Esto es lo que Ale hacía en genesis3D para pasarle un array de estruturas
 
No vi en detalle lo mio, ni lo tuyo; pero se me ocurre que si vos
 recibis el puntero y no agregas/sacas nada, podes pasarlo directamente.
En lo mío, quizas estoy armando la estructura en smalltalk,
 no se... tambien, claro, puede ser innecesario lo que yo haya hecho.
 
hasta pronto
Ale.
 
----- Original Message -----
Sent: Friday, December 19, 2008 2:01 PM
Subject: [objetos] RE: Jet3D y VS

Hola Ale, lista
 
Bueno finalmente solucione el error, aunque no puedo explicar que es lo que paso en realidad.
 
El tema es que luego de cambier el orden de los parametro del callback en la DLL y recompilar la DLL salio andando.
No me explico cual es la verdadera razon para lo ocurrido, pero es muy loco.
 
Me pregunto y les pregunto, es siempre tan duro el trabajo con una DLL ?.
Digo porque podría haber estado años renegando y no encontrar el problema.
 
 
Por otra parte el pasaje de los vertices a la DLL es otra cosa que no me paso nunca.
Esto es lo que Ale hacía en genesis3D para pasarle un array de estruturas
 
>>internalize: aCollection
 "Returns an internal representation of instances of the receiver in aCollection. "
 | bits |
 bits := WriteStream on: (ByteArray new: aCollection first asParameter size).
 aCollection do: [:vertex| bits nextPutAll: vertex asParameter ].
 ^bits contents
 
Y en el api declaraba el argumento como struct.
 
Yo hacía lo mismo y resulto que no funciono y tuve que hacer esto:
 
Este es el método que se activa con el callback:
 
drawFaceCB:  context vertexs:  aJetTransformedLitV ertex   numVertex:  count   
 
"Display aPolygon formed from aCollection of JetTransformedLitVe rtex."
 
  |vertexs modVertexs|
 
vertexs:= Array new: count.
0 to:(count-1) do:[:index | vertexs at: (index +1)
                                                                put: (JetTransformedLitV ertex fromPointer: (aJetTransformed LitVertex+ (index*64))) ].
 
vertexs  do:[:each | each  a:128; r:255 ; g:0 ;b: 0; yourself].
self engine 
    renderPolygon: aJetTransformedLitV ertex   asExternalAddress
               texture: nil  
               flags: nil 
      numVertex: count.
 
>>jeEngineRenderPoly: pEngine
                                             points: pPoints
                                    numPoints: numPoints
                                           texture: pBitmap
                                                flags: flags
 " API Uncommented.
 RenderPoly : if Texture is null, we Gouraud shade. "
 <api: '_jeEngine_RenderPo ly@20' ulong ulong  long ulong long none>
 ^self invalidArgument
 
Como ven yo paso directamente la dirección que me viene de la DLL como un ulong y no como hacia Ale al pasar un struct que el formaba con los vértices.
 
 
Es normal esto o hay algo fuera de lo comun ?
Me refiero a la solucion de ALE con referencia a la mía
 
saludos kiko
 
PD: No sé si se entiende
 



¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile. yahoo.com/ onesearch



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16895 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mar, 30 de Dic, 2008 12:34 pm
Asunto: Fin de año y Próxima reunión
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Estimados,
Estas épocas, de fin de año, me hacen reflexionar sobre
  qué cosas he hecho durante el año y cómo me gustaría
  arrancar el siguiente.

Para ver que hemos hecho aquí, creo que es sano darle una
  hojeada al registro que quedó en esta lista; al menos
  como para recordar las actividades que hemos realizado
  (creo que todas anunciadas aquí) y cuánto hemos
  incentivado a realizar actividades según nuestros objetivos
  en esta lista.

En lo que respecta a cómo arrancar el año que viene,
  me gustaría hacerlo organizando una reunión que
  esté mas focalizada en lo nuestro (esforzandonos
  para ir dejando atrás lo "técnico", ese yunque que nos
  ata a hablar de smalltalk y otros temas tan cercanos
  a lo que abunda, por ser quizás, lo mas fácil y entendible).
Creo que desde hace años tenemos material como
  para realizar este "arranque en nuestros temas" de una
  forma grupal y no en la soledad del estudio de cada uno.

Podemos usar entre otros contenidos, publicados en
  nuestro sitio y mas allá...
- Comportamiento de la Información - de Luc Claeys
- Time and the Observer - Daniel C. Dennet
- Seen is Believing - Daniel C. Dennet
- Papers y video de presentación de Richard Gabriel en S3
- otros articulos y links propuestos en esta lista.
[*]

En este año hemos hecho varias veces la reunión en el bar
  que está en la plaza al lado de la Biblioteca Nacional,
  quizás sería bueno ver si esta vez entramos en la biblioteca...
  averiguar por algún lugar dónde nos podamos reunir allí,
  digo, quizás es un buen espacio para arrancar el año
  y auspiciar de alguna forma el avance, que aunque sea minimo,
  deberíamos poder lograr en lo nuestro en este año que viene.

Cuál fecha sería apopiada para la reunión?
Quienes se anotan?

hasta el año que viene,
Ale.

[*] Quizás no es necesaria la aclaración que sigue, pero...
  para quienes no me conocen:
  los contenidos de esta lista no reflejan mi forma de pensar;
  son solo textos que considero de valor para realizar
  un trabajo conjunto sobre nuestros temas de interés.

#16894 De: "Elvio Fernandez" <elvio.fernandez@...>
Fecha: Mar, 30 de Dic, 2008 2:17 am
Asunto: La complejidad y demas yerbas
elvisman_780
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola gente,

Supongo este mi ultimo mensajito del año :-D.
Me hice el tiempo para ir leyendo (de a poco) los articulos de este sitio (http://www.iieh.org/complejidad.php). Ya en otra oportunidad nombre este link.
Entre los mas interesantes que lei estan:

- CAOS Y COMPLEJIDAD
-
cerebro, mente, cuerpo y entorno
- Dinámica de los Sistemas Complejos
- Transgresión de límites: el riesgo de la extrapolación en la investigación científica (especialmente el apartado de "Muerte por reduccionismo")
-
Los nuevos caminos del conocimiento
- la realidad es una compleja red de interconexiones


En estos articulos hay un monton de cosas que nosotros siempre hablamos. Desde cuestiones de percepcion, imagen (abstracciones y construcciones de conceptos), hasta el lenguaje y, por supuesto, sistemas.

No queria dejar de compartirlo con uds.

Saludos y feliz año nuevo.

Elvio

#16893 De: "Gustavo Ibarra" <ibarrags@...>
Fecha: Mar, 23 de Dic, 2008 1:27 pm
Asunto: Re: OFF TOPIC - OLPC programa G1G12008 - contacto por algun conocido radicado en eeuu -
gibarrag
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Agradecimiento publico.

Francisco "Pancho" Garau, muy amigablemente respondió a mi pedido de ayuda contactándome con Bernardo Arainty ( no participa de la lista). Quien sin chistar, ni preguntar nada de nada, se ofreció en darme una mano, -"una mancha mas al tigre" fue parte de su respuesta. Me dieron la posibilidad de poder hacer realidad y pensar en tener mi propia XO de OLPC, por medio del programa G1G1.  Soy la segunda "G1", pronto se cerrara el ciclo, cuando algún niño de algún rincón del mundo reciba su primer XO,  siendo la primer "G1"  del programa "Give 1 Get 1" organizado por la gente de OLPC.
Toda una cadena de favores !!

GRACIAS pancho y bernardo!!!, mañana pasa Papa Noel por el pueblo. Lo se por que mando un SMS diciendo que trae la XO en el trineo!

Felices Fiestas.

Saludos,
Gustavo.-

On Fri, Nov 7, 2008 at 12:13 PM, Gustavo Ibarra <ibarrags@...> wrote:

buenas!, aca voy con un off Tepic, sepan disculpar…pero antes de ser carnada de algún estafador, consulto por esta lista buscando un contacto "mas cercano" que tirando un mail a alguna de las lista publicas de olpc … copio el mail que estoy por mandar. Como mi ingles lo entiende hasta un nene de 4 años y 3 meses, lo dejo tal cual lo escribir sin traducir y con errores..

 

hello, I'm Argentinian (Junin - Buenos Aires) and i am interested in participating in the program G1G12008,but I'm not living in the U.S., so I need an address in that country where the OLPC can be delivered, and then coordinate the shipment by mail (payd the shipment with  paypad, etc…) to my address in Argentina. I would  payd the request with my credit card  and the order would indicate the address  from the person who help me. Please send me a private mail, if you can help me. thank you very much

 

disculpen el off topic, pasa que me me quede sin la única alternativa del conocido que tenia viviendo en eeuu….. desde ya muchas gracias . Gustavo.-


#16892 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Lun, 22 de Dic, 2008 2:16 pm
Asunto: Re: [objetos] GUI en VS ?
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 


Hola,

 

>En este momento uso ApplicationCoordinator para mi demo.

> El tema es, debo dejar de usar esto y pasar a usar ViewManager ¿?.

 

No.

EL WBuilder puede generarte la interfáz de un coordinator.

Fijate al guardar la interfáz, hacela heredar de algun ApplicationCoordinator

 (fijate en el diálogo al guardar la ventana, que allí hay un radio para

 elegir la jerarquía y un combo para elejir la superclase).

Todo lo demás es idéntico.

 

>Para poder usar WB ¿?. O lo conveniente sería que arme la interface

> con los widget de WB pero usando  ApplicationCoordinator ¿?.

>El tema aquí es que no hay un editor de GUI, tendría que hacerlo

> a pata.  Se entiende ¿?.

 

EL WB trabaja con ambos mecanismos; la diferencia que hay entre

 un ViewManager y un AppCoordinator, es que un ViewManager

 tiene solo un TopPane, y el AppCoordinator puede tener uno,

 mas de uno (y coordinar las vistas abriendo y cerrandolos/ocultandolos

 dinamicamente) o ninguno (por ejemplo en un servidor de red via Sockets).

 

>También esta  el problema de que WB es estático, no permite agregar

> widget en runtime y eso complica un poco.

 

Con un poco de maña seguramenet vas a darte cuenta como eliminar

 y agregar dinámicamente paneles (fijate que el wb agrega mensajes

 para hacerlo); asi, el truco es tener un panel (normalmente un panel

 de borde u otro que no se vea) y agregar dinámicamente un

 CompositePane adentro... luego cuando se tiene que cambiar por

 otro, eliminarlo.

Así el CompositePane maneja toda la complejidad de lo que tiene

 adentro (normalmente cunmple un rol de editor) sin quedarte esto

 en el coordinador.

 

>Otra cosa, WB es compatible con  LSW VisionSmalltalk

La VM demo para evaluar la comatibilidad con VS ejecuta una

 aplicación VS entera, tenga o no WindowBuilder, es completamente

 transparente.

 

hasta pronto,

Ale.

 

 

 
 
----- Original Message -----
Sent: Friday, December 19, 2008 2:16 PM
Subject: [objetos] GUI en VS ?

Hola Gente

 

 

Estoy intentando hacer un editor de mapas que me permita construir la geometría en tiempo real y aprovechar las características dinámicas de ST, a la hora de crear un mapa.

 

Los editores mas comunes son del tipo que se ve en la captura   .

Como ven tiene algunos paneles y comboBox y otros widget. Yo conozco  como funciona WindowBuilder y me pregunto esto:

 

En este momento uso ApplicationCoordinator para mi demo . El tema es, debo dejar de usar esto y pasar a usar ViewManager ¿?.

Para poder usar WB ¿?. O lo conveniente sería que arme la interface con los widget de WB pero usando  ApplicationCoordinator ¿?.

El tema aquí es que no hay un editor de GUI, tendría que hacerlo a pata.  Se entiende ¿?.

 

También esta  el problema de que WB es estático, no permite agregar widget en runtime y eso complica un poco.

Otra cosa, WB es compatible con  LSW VisionSmalltalk

 

Cualquier idea es bienvenida

 

Saludos kiko




Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16891 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Lun, 22 de Dic, 2008 2:03 pm
Asunto: Re: [objetos] RE: Jet3D y VS
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 

Hola kiko,
A veces ocurre que las cosas se arreglan de golpe al recopilar todo el proyecto.
Es algo no muy frecuente, pero que me ha pasado; tiene que ver con
 cómo está definido el proyecto en C y a veces en el orden en que se
 compilan librerías.
 
>Me pregunto y les pregunto, es siempre tan duro el trabajo con una DLL ?.
 
No, cada vez te va a ir siendo mas simple, a medidas que conozcas
 como tenes que mover las palancas.
 
>Digo porque podría haber estado años renegando y no encontrar el problema.
 
jajaja creo que en algun momento (antes de un par de años)
 hubieras apretado, quizás por error, el botón
 para que recompile todo :-P
 
...los beneficios del encapsulamiento.
 
>Por otra parte el pasaje de los vertices a la DLL es otra cosa que no me paso nunca.
>Esto es lo que Ale hacía en genesis3D para pasarle un array de estruturas
 
No vi en detalle lo mio, ni lo tuyo; pero se me ocurre que si vos
 recibis el puntero y no agregas/sacas nada, podes pasarlo directamente.
En lo mío, quizas estoy armando la estructura en smalltalk,
 no se... tambien, claro, puede ser innecesario lo que yo haya hecho.
 
hasta pronto
Ale.
 
----- Original Message -----
Sent: Friday, December 19, 2008 2:01 PM
Subject: [objetos] RE: Jet3D y VS

Hola Ale, lista
 
Bueno finalmente solucione el error, aunque no puedo explicar que es lo que paso en realidad.
 
El tema es que luego de cambier el orden de los parametro del callback en la DLL y recompilar la DLL salio andando.
No me explico cual es la verdadera razon para lo ocurrido, pero es muy loco.
 
Me pregunto y les pregunto, es siempre tan duro el trabajo con una DLL ?.
Digo porque podría haber estado años renegando y no encontrar el problema.
 
 
Por otra parte el pasaje de los vertices a la DLL es otra cosa que no me paso nunca.
Esto es lo que Ale hacía en genesis3D para pasarle un array de estruturas
 
>>internalize: aCollection
 "Returns an internal representation of instances of the receiver in aCollection."
 | bits |
 bits := WriteStream on: (ByteArray new: aCollection first asParameter size).
 aCollection do: [:vertex| bits nextPutAll: vertex asParameter ].
 ^bits contents
 
Y en el api declaraba el argumento como struct.
 
Yo hacía lo mismo y resulto que no funciono y tuve que hacer esto:
 
Este es el método que se activa con el callback:
 
drawFaceCB:  context vertexs:  aJetTransformedLitVertex   numVertex:  count   
 
"Display aPolygon formed from aCollection of JetTransformedLitVertex."
 
  |vertexs modVertexs|
 
vertexs:= Array new: count.
0 to:(count-1) do:[:index | vertexs at: (index +1)
                                                                put: (JetTransformedLitVertex fromPointer:(aJetTransformedLitVertex+ (index*64)))].
 
vertexs  do:[:each | each  a:128; r:255 ; g:0 ;b: 0; yourself].
self engine 
    renderPolygon: aJetTransformedLitVertex   asExternalAddress
               texture: nil  
               flags: nil 
      numVertex: count.
 
>>jeEngineRenderPoly: pEngine
                                             points: pPoints
                                    numPoints: numPoints
                                           texture: pBitmap
                                                flags: flags
 " API Uncommented.
 RenderPoly : if Texture is null, we Gouraud shade. "
 <api: '_jeEngine_RenderPoly@20' ulong ulong  long ulong long none>
 ^self invalidArgument
 
Como ven yo paso directamente la dirección que me viene de la DLL como un ulong y no como hacia Ale al pasar un struct que el formaba con los vértices.
 
 
Es normal esto o hay algo fuera de lo comun ?
Me refiero a la solucion de ALE con referencia a la mía
 
saludos kiko
 
PD: No sé si se entiende
 



¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile.yahoo.com/onesearch

#16890 De: kikoGregoris <kikogregoris@...>
Fecha: Vie, 19 de Dic, 2008 5:16 pm
Asunto: GUI en VS ?
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 

Hola Gente

 

 

Estoy intentando hacer un editor de mapas que me permita construir la geometría en tiempo real y aprovechar las características dinámicas de ST, a la hora de crear un mapa.

 

Los editores mas comunes son del tipo que se ve en la captura   .

Como ven tiene algunos paneles y comboBox y otros widget. Yo conozco  como funciona WindowBuilder y me pregunto esto:

 

En este momento uso ApplicationCoordinator para mi demo. El tema es, debo dejar de usar esto y pasar a usar ViewManager ¿?.

Para poder usar WB ¿?. O lo conveniente sería que arme la interface con los widget de WB pero usando  ApplicationCoordinator ¿?.

El tema aquí es que no hay un editor de GUI, tendría que hacerlo a pata.  Se entiende ¿?.

 

También esta  el problema de que WB es estático, no permite agregar widget en runtime y eso complica un poco.

Otra cosa, WB es compatible con  LSW VisionSmalltalk

 

Cualquier idea es bienvenida

 

Saludos kiko




Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16889 De: kikoGregoris <kikogregoris@...>
Fecha: Vie, 19 de Dic, 2008 5:01 pm
Asunto: RE: Jet3D y VS
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Ale, lista
 
Bueno finalmente solucione el error, aunque no puedo explicar que es lo que paso en realidad.
 
El tema es que luego de cambier el orden de los parametro del callback en la DLL y recompilar la DLL salio andando.
No me explico cual es la verdadera razon para lo ocurrido, pero es muy loco.
 
Me pregunto y les pregunto, es siempre tan duro el trabajo con una DLL ?.
Digo porque podría haber estado años renegando y no encontrar el problema.
 
 
Por otra parte el pasaje de los vertices a la DLL es otra cosa que no me paso nunca.
Esto es lo que Ale hacía en genesis3D para pasarle un array de estruturas
 
>>internalize: aCollection
 "Returns an internal representation of instances of the receiver in aCollection."
 | bits |
 bits := WriteStream on: (ByteArray new: aCollection first asParameter size).
 aCollection do: [:vertex| bits nextPutAll: vertex asParameter ].
 ^bits contents
 
Y en el api declaraba el argumento como struct.
 
Yo hacía lo mismo y resulto que no funciono y tuve que hacer esto:
 
Este es el método que se activa con el callback:
 
drawFaceCB:  context vertexs:  aJetTransformedLitVertex   numVertex:  count   
 
"Display aPolygon formed from aCollection of JetTransformedLitVertex."
 
  |vertexs modVertexs|
 
vertexs:= Array new: count.
0 to:(count-1) do:[:index | vertexs at: (index +1)
                                                                put: (JetTransformedLitVertex fromPointer:(aJetTransformedLitVertex+ (index*64)))].
 
vertexs  do:[:each | each  a:128; r:255 ; g:0 ;b: 0; yourself].
self engine 
    renderPolygon: aJetTransformedLitVertex   asExternalAddress
               texture: nil  
               flags: nil 
      numVertex: count.
 
>>jeEngineRenderPoly: pEngine
                                             points: pPoints
                                    numPoints: numPoints
                                           texture: pBitmap
                                                flags: flags
 " API Uncommented.
 RenderPoly : if Texture is null, we Gouraud shade. "
 <api: '_jeEngine_RenderPoly@20' ulong ulong  long ulong long none>
 ^self invalidArgument
 
Como ven yo paso directamente la dirección que me viene de la DLL como un ulong y no como hacia Ale al pasar un struct que el formaba con los vértices.
 
 
Es normal esto o hay algo fuera de lo comun ?
Me refiero a la solucion de ALE con referencia a la mía
 
saludos kiko
 
PD: No sé si se entiende
 



¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile.yahoo.com/onesearch

#16888 De: kikoGregoris <kikogregoris@...>
Fecha: Mar, 16 de Dic, 2008 12:22 pm
Asunto: Re: [objetos] Jet3D y VS ?
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Ale
 
Como en el ejemplo en C++ hacen esto:
 
jeEngine_RenderPoly(pDrawFaceInfo->pEngine, ModVerts,
NumVerts, NULL, JE_RENDER_FLAG_ALPHA);
jeRam_Free( ModVerts );
 
Intente hacer un free sobre la dirección de memoria que biene al callback, con el resultado de que tira un error:
// check stamp at front
if (memcmp (p+SizeSize, MemStamp, MemStampSize) != 0)
{
assert (0 &&
"ram_verify_block: Memory block corrupted at front");
return NULL;
}
 
Inmediatamente probé hacer un free sobre el context y no tubo ningún problema para liberar esa memoria.
 
Tenes idea de lo que significa ese error ?.
Del lado ST tengo que liberar como hacen ellos en C++ ?
 
Ayer no se que paso que pude obtener las estruturas, pero luego al pasarcelas a la DLL llegaban mal !!!.
 
Probé instanciar algunas estruturas a mano y pasarlas y no hay drama.
 
Cambié la convención del callBack pero sigue todo igual.
 
saludos kiko


--- El lun 15-dic-08, kikoGregoris <kikogregoris@...> escribió:
De: kikoGregoris <kikogregoris@...>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@...
Fecha: lunes, 15 de diciembre de 2008, 10:16 am

Hola Ale
 
Otra pregunta que tengo es.
Por qué el proceso no es reasumible ?.
Adjunto una captura para que veas el stack de métodos activados.
 
ESto es algo que no ocurre con la implementació n de particulas
 
saludos kiko


--- El lun 15-dic-08, kikoGregoris <kikogregoris@ yahoo.com. ar> escribió:
De: kikoGregoris <kikogregoris@ yahoo.com. ar>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@ gruposyahoo. com.ar
Fecha: lunes, 15 de diciembre de 2008, 9:37 am

Hola Ale
 
Tenias razon, estan invertidos los ordenes.
El tema es que aun así no puedo obtener la estructura con valores correctos.
El context no tiene drama, le pase lo que le pase, luego puedo obtenerlo correctamente.
El tema esta con los vertices.
No se por donde buscar, la estructura esta bien definida y es esta:
 
registerType: 'jeTLVertex'
as:#( (x float) (y float) (z float) ( pad float) "screen points"
(r float) (g float) (b float) (a float) "color"
(u float) (v float) (pad1 float) (pad2 float) " Uv's"
(sr float) (sg float) (sb float) ( pad3 float) "specular color"
);
 
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Luego declara esto, que no se para que lo hace:
 
// temporary: ! Get rid of the JE_ types!
#define
JE_RGBA jeRGBA
#define
JE_Rect jeRect
#define
JE_LVertex jeLVertex
#define
JE_TLVertex jeTLVertex
 
Intento obtenerla así:
 
>>drawFaceCB: aJetTransformedLitV ertex numVertex: count context: context
 
JetTransformedLitVe rtex fromPointer: context.
 
JetPointer>>fromPointer: aPointer
 
"Returns an initialized instance of the receiver pointing to aPointer"
 
^self basicNew initializeFromPoint er: aPointer
 
>>initializeFromPoint er: aPointer
" Private - Initialize the receiver from aPointer. "
 
aPointer isExternalAddress ifFalse: [
"convert to external address..."
(aPointer isNil or: [ aPointer = 0 ]) ifTrue: [ ^nil ].
^self initializeFromPoint er: aPointer asExternalAddress
].
aPointer isValid ifFalse: [ ^nil ].
self
initializePointerTo : self structureName
with: aPointer.
 
Retorna :
TLitV[ -1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8
(-1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8)
(-1,07374176e8 -1,07374176e8 -1,07374176e8) -1,07374176e8
(-1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8) ].
 
Esto debería devolver la primera estructura.
Si le sumo los 64 byte para obtener la proxima, pasa lo mismo.
 
Saludos kiko


--- El vie 12-dic-08, Alejandro F. Reimondo <aleReimondo@ smalltalking. net> escribió:
De: Alejandro F. Reimondo <aleReimondo@ smalltalking. net>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@ gruposyahoo. com.ar
Fecha: viernes, 12 de diciembre de 2008, 7:55 pm


Fijate si el callback te está llegando con los argumentos
 en el orden inverso... (primero el Context, luego el size
 y por último el que te interesa)
A veces ocurre que el callback es llamado con convencion C
 o pascal y ocurre esa inversion en los argumentos.
Paciencia... :-)
Viendo la definición del callback, creo que es correcto lo que
 decis de que te llega un puntero a estructuras, con lo que
 debes sumar (a la externalAddress inicial), para tener la
 estructura siguiente es el #sizeInBytes de (la estructura en) el elemento.
Si usas un debugger de bajo nivel, es facil ver justo antes de la llamada
 al callback, que valores (direcciones) tienen los argumentos
 y luego al atender el callback en Smalltalk ves la address que
 tenes en el primer argumento, y comprobas si el orden es el correcto
 o estan invertidos.
suerte,
Ale.
 
 
 
----- Original Message -----
Sent: Friday, December 12, 2008 9:01 AM
Subject: Re: [objetos] Jet3D y VS ?

 

Hola Ale !!

 

Gracias.

 

Amplio el panorama, esta es la definición de la función del lado de la DLL:

 

typedef void jeBSPNode_DrawFaceC B(const jeTLVertex *Verts, int32 NumVerts, void *Context);

 

Así declara el array en la DLL:

 

jeTLVertex      TLVerts[MAX_ TEMP_VERTS] ; //MAX_TEMP_VERTS =128

 

Y así llama a la función callback en la DLL:

 

BSP->DrawFaceCB(TLVerts, ClipInfo.NumDstVert s, BSP->DrawFaceCBContext) ;

 

Mis conocimientos C son chatos, pero creo que es un array de struturas ??.

 

Si hago JetDLL strutureNamed:´jeTLVertex´ atAddress: aJetTransformedLitV ertex    asExternalAddress.

 

Retorna una extrutura con valores incorrectos y si le sumo 1 hace lo mismo.

 

Tambien intento definir una estrutura así:

registerType: 'jeArray'

            as:#((element '*jeTLVertex' )

          );

 

Pero no funciona.

 

Cual es el problema ¿?

 

Saludos kiko
PD: Perdon capas no entendí tu sugerencia
--- El jue 11-dic-08, Alejandro F. Reimondo <aleReimondo@ smalltalking. net> escribió:
De: Alejandro F. Reimondo <aleReimondo@ smalltalking. net>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@ gruposyahoo. com.ar
Fecha: jueves, 11 de diciembre de 2008, 8:44 pm


Hola Kiko,
Según entendí, al callback te llega la direccion de un array
 conteniendo punteros a las estructuras que te interesa usar.
Si es así, el integer que tenes como argumento es la direccion del array,
 por lo que a ese entero lo podes transformar en un ExternalAddress
 (argument asExternalAddress) .
El tener una external address te es conveniente pues al sumarle uno
 (anExternalAddress + 1) devuelve la dirección del siguiente puntero
 en el array.
Teniendo la dirección, podes instanciar una estructura con la dirección
 APUNTADA en esa dirección como se hace normalmente (es muy
 provable que el array sea de punteros a estructuras y no de
 estructuras -asegurate de esto-, por lo que, si es un array de
 punteros, en cada dirección tenes un puntero a la estructura
 en cuestion, es decir, sacá el uLong apuntado por la dirección,
 transformala en otra dirección y con eso instanciá la estructura).
Si es un array de estructuras, preguntá de nuevo, si no te
 das cuenta cómo resolverlo.
Quizás no sea necesario construir todo el array..., quizás te conviene
    ir iterando e instanciar la estructura que se necesita a partir de la
    dirección...
Si estas usando debugger de bajo nivel, es conveniente que
 coloques un breakpoint antes de la activación del callback
 para ver que es lo que esta pasandole al callback y cómo
 lo recibís del lado de smalltalk... y como lo vas usando.
suerte, no solo es duro,... además es aburrido :-)
Ale.
 
 
 
----- Original Message -----
Sent: Thursday, December 11, 2008 4:35 PM
Subject: [objetos] Jet3D y VS ?

Hola Gente
 
Estoy trabajando con Jet3D y VS y tengo un pequeño inconveniente.
Necesito rendear la cara de un Brush que Jet envía por medio de un callback en forma de:
JetTransformedLitVe rtex que es igual a GenesisTransformedL itVertex.
 
El tema es que yo tengo este mensaje para el callback:
>>drawFaceCB: aJetTransformedLitV ertex numVertex: count context: context
 
Ahora el tema es que este aJetTransformedLitV ertex es un array del lado de la DLL , pero de el lado VS es un integer pues lo declare como ulong. (DrawFaceCallBack ( ulong ulong ulong ) none c)
 
Como reconstruyo el array del lado de VS ?.
 
Intento con:
JetTransformedLitVe rtex fromPointer: aJetTransformedL itVertex , pero retorna una estructura incorrecta.
 
Busque por el lado de ExternalBuffer, pero no encuentro algo util.
En MT simplemente hacía por ejemplo GenesisVector3D fromBytes: aBytes y listo, pero aca nose.
 
Viendo la implementacion de la estructura en jet encuentro esto:
typedef
struct
{
/*
jeVec3d Position;
jeRGBA Color,SpecularColor ;
float u,v,pad1,pad2;
*/
// FIXME: Convert 3d X,Y,Z to jeVec3d
float X, Y, Z, pad; // 3d vertex
// FIXME: Convert r,g,b,a to JE_RGBA
float r, g, b, a; // color
float u, v,pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeLVertex;
// 64 bytes
// Transformed Lit vertex
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Ambos son iguales !!!!!. Cual es la diferencia, si se puede saber y preguntar aquí.
Estoy ciego o me estoy volviendo loco.jajajja o soy un nabo jajaja
 
saludos kiko
 
PD: Que duro es trabajar acá abajo jajaj



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile. yahoo.com/ onesearch



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile.yahoo.com/onesearch

#16887 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mar, 16 de Dic, 2008 1:32 pm
Asunto: Re: [objetos] Jet3D y VS ?
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 

El callback se activa encontrando a la VM con las "interrupciones
 deshabilitadas". En esta situación la VM de VS no esta preparada
 para que puedas continuar ejecutando ese contexto (condiciones
 que se dan tambien en VWorks y otras vms de diseño algo obsoleto).
Lo que si podes hacer es usar el inspector y enviar mensajes tanto
 al receptor como a los argumentos compilandolos en el panel
 de texto, en dónde el compilador tiene visibilidad de los nombres
 en uso en ese contexto no resuelto.
En esto que te puse arriba tenes que tener en cuenta los tiempos
 de vida de los argumentos en la librería, que, si continúa trabajando,
 puede ocurrir que las estructuras ya no sean válidas "allí fuera".
suerte!
Ale.
 
----- Original Message -----
Sent: Monday, December 15, 2008 10:16 AM
Subject: Re: [objetos] Jet3D y VS ?

Hola Ale
 
Otra pregunta que tengo es.
Por qué el proceso no es reasumible ?.
Adjunto una captura para que veas el stack de métodos activados.
 
ESto es algo que no ocurre con la implementación de particulas
 
saludos kiko


--- El lun 15-dic-08, kikoGregoris <kikogregoris@...> escribió:
De: kikoGregoris <kikogregoris@...>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@...
Fecha: lunes, 15 de diciembre de 2008, 9:37 am

Hola Ale
 
Tenias razon, estan invertidos los ordenes.
El tema es que aun así no puedo obtener la estructura con valores correctos.
El context no tiene drama, le pase lo que le pase, luego puedo obtenerlo correctamente.
El tema esta con los vertices.
No se por donde buscar, la estructura esta bien definida y es esta:
 
registerType: 'jeTLVertex'
as:#( (x float) (y float) (z float) ( pad float) "screen points"
(r float) (g float) (b float) (a float) "color"
(u float) (v float) (pad1 float) (pad2 float) " Uv's"
(sr float) (sg float) (sb float) ( pad3 float) "specular color"
);
 
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Luego declara esto, que no se para que lo hace:
 
// temporary: ! Get rid of the JE_ types!
#define
JE_RGBA jeRGBA
#define
JE_Rect jeRect
#define
JE_LVertex jeLVertex
#define
JE_TLVertex jeTLVertex
 
Intento obtenerla así:
 
>>drawFaceCB: aJetTransformedLitV ertex numVertex: count context: context
 
JetTransformedLitVe rtex fromPointer: context.
 
JetPointer>>fromPointer: aPointer
 
"Returns an initialized instance of the receiver pointing to aPointer"
 
^self basicNew initializeFromPoint er: aPointer
 
>>initializeFromPoint er: aPointer
" Private - Initialize the receiver from aPointer. "
 
aPointer isExternalAddress ifFalse: [
"convert to external address..."
(aPointer isNil or: [ aPointer = 0 ]) ifTrue: [ ^nil ].
^self initializeFromPoint er: aPointer asExternalAddress
].
aPointer isValid ifFalse: [ ^nil ].
self
initializePointerTo : self structureName
with: aPointer.
 
Retorna :
TLitV[ -1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8
(-1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8)
(-1,07374176e8 -1,07374176e8 -1,07374176e8) -1,07374176e8
(-1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8) ].
 
Esto debería devolver la primera estructura.
Si le sumo los 64 byte para obtener la proxima, pasa lo mismo.
 
Saludos kiko


--- El vie 12-dic-08, Alejandro F. Reimondo <aleReimondo@ smalltalking. net> escribió:
De: Alejandro F. Reimondo <aleReimondo@ smalltalking. net>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@ gruposyahoo. com.ar
Fecha: viernes, 12 de diciembre de 2008, 7:55 pm


Fijate si el callback te está llegando con los argumentos
 en el orden inverso... (primero el Context, luego el size
 y por último el que te interesa)
A veces ocurre que el callback es llamado con convencion C
 o pascal y ocurre esa inversion en los argumentos.
Paciencia... :-)
Viendo la definición del callback, creo que es correcto lo que
 decis de que te llega un puntero a estructuras, con lo que
 debes sumar (a la externalAddress inicial), para tener la
 estructura siguiente es el #sizeInBytes de (la estructura en) el elemento.
Si usas un debugger de bajo nivel, es facil ver justo antes de la llamada
 al callback, que valores (direcciones) tienen los argumentos
 y luego al atender el callback en Smalltalk ves la address que
 tenes en el primer argumento, y comprobas si el orden es el correcto
 o estan invertidos.
suerte,
Ale.
 
 
 
----- Original Message -----
Sent: Friday, December 12, 2008 9:01 AM
Subject: Re: [objetos] Jet3D y VS ?

Hola Ale !!

Gracias.

Amplio el panorama, esta es la definición de la función del lado de la DLL:

typedef void jeBSPNode_DrawFaceC B(const jeTLVertex *Verts, int32 NumVerts, void *Context);

Así declara el array en la DLL:

jeTLVertex      TLVerts[MAX_ TEMP_VERTS] ; //MAX_TEMP_VERTS =128

Y así llama a la función callback en la DLL:

BSP->DrawFaceCB(TLVerts, ClipInfo.NumDstVert s, BSP->DrawFaceCBContext) ;

Mis conocimientos C son chatos, pero creo que es un array de struturas ??.

Si hago JetDLL strutureNamed:´jeTLVertex´ atAddress: aJetTransformedLitV ertex    asExternalAddress.

Retorna una extrutura con valores incorrectos y si le sumo 1 hace lo mismo.

Tambien intento definir una estrutura así:

registerType: 'jeArray'

            as:#((element '*jeTLVertex' )

          );

Pero no funciona.

Cual es el problema ¿?

Saludos kiko
PD: Perdon capas no entendí tu sugerencia
--- El jue 11-dic-08, Alejandro F. Reimondo <aleReimondo@ smalltalking. net> escribió:
De: Alejandro F. Reimondo <aleReimondo@ smalltalking. net>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@ gruposyahoo. com.ar
Fecha: jueves, 11 de diciembre de 2008, 8:44 pm


Hola Kiko,
Según entendí, al callback te llega la direccion de un array
 conteniendo punteros a las estructuras que te interesa usar.
Si es así, el integer que tenes como argumento es la direccion del array,
 por lo que a ese entero lo podes transformar en un ExternalAddress
 (argument asExternalAddress) .
El tener una external address te es conveniente pues al sumarle uno
 (anExternalAddress + 1) devuelve la dirección del siguiente puntero
 en el array.
Teniendo la dirección, podes instanciar una estructura con la dirección
 APUNTADA en esa dirección como se hace normalmente (es muy
 provable que el array sea de punteros a estructuras y no de
 estructuras -asegurate de esto-, por lo que, si es un array de
 punteros, en cada dirección tenes un puntero a la estructura
 en cuestion, es decir, sacá el uLong apuntado por la dirección,
 transformala en otra dirección y con eso instanciá la estructura).
Si es un array de estructuras, preguntá de nuevo, si no te
 das cuenta cómo resolverlo.
Quizás no sea necesario construir todo el array..., quizás te conviene
    ir iterando e instanciar la estructura que se necesita a partir de la
    dirección...
Si estas usando debugger de bajo nivel, es conveniente que
 coloques un breakpoint antes de la activación del callback
 para ver que es lo que esta pasandole al callback y cómo
 lo recibís del lado de smalltalk... y como lo vas usando.
suerte, no solo es duro,... además es aburrido :-)
Ale.
 
 
 
----- Original Message -----
Sent: Thursday, December 11, 2008 4:35 PM
Subject: [objetos] Jet3D y VS ?

Hola Gente
 
Estoy trabajando con Jet3D y VS y tengo un pequeño inconveniente.
Necesito rendear la cara de un Brush que Jet envía por medio de un callback en forma de:
JetTransformedLitVe rtex que es igual a GenesisTransformedL itVertex.
 
El tema es que yo tengo este mensaje para el callback:
>>drawFaceCB: aJetTransformedLitV ertex numVertex: count context: context
 
Ahora el tema es que este aJetTransformedLitV ertex es un array del lado de la DLL , pero de el lado VS es un integer pues lo declare como ulong. (DrawFaceCallBack ( ulong ulong ulong ) none c)
 
Como reconstruyo el array del lado de VS ?.
 
Intento con:
JetTransformedLitVe rtex fromPointer: aJetTransformedL itVertex , pero retorna una estructura incorrecta.
 
Busque por el lado de ExternalBuffer, pero no encuentro algo util.
En MT simplemente hacía por ejemplo GenesisVector3D fromBytes: aBytes y listo, pero aca nose.
 
Viendo la implementacion de la estructura en jet encuentro esto:
typedef
struct
{
/*
jeVec3d Position;
jeRGBA Color,SpecularColor ;
float u,v,pad1,pad2;
*/
// FIXME: Convert 3d X,Y,Z to jeVec3d
float X, Y, Z, pad; // 3d vertex
// FIXME: Convert r,g,b,a to JE_RGBA
float r, g, b, a; // color
float u, v,pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeLVertex;
// 64 bytes
// Transformed Lit vertex
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Ambos son iguales !!!!!. Cual es la diferencia, si se puede saber y preguntar aquí.
Estoy ciego o me estoy volviendo loco.jajajja o soy un nabo jajaja
 
saludos kiko
 
PD: Que duro es trabajar acá abajo jajaj



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile. yahoo.com/ onesearch



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16886 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Mar, 16 de Dic, 2008 1:26 pm
Asunto: Re: [objetos] Jet3D y VS ?
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 

kiko,
En mi opinión, la forma de saber de que forma pasan los
 argumentos es con un debugger de bajo nivel.
Si no tenes un debuggerpara poner un breakpoint en la llamada
 al callback y justo antes tomar nota de las direcciones que
 se pasan desde la librería (y el layout en memoria de las
 estructuras), es dificil saber cual es el problema viendolo
 solo del lado del callback, una vez que ya está en smalltalk.
Si queres que te de una mano en esto, escribime de manera
 personal y vemos como te puedo ayudar (sin compromiso
 respecto de los tiempos en que pueda ofrecerte, lo ofrezco
 de onda).
Ale.
 
----- Original Message -----
Sent: Monday, December 15, 2008 9:37 AM
Subject: Re: [objetos] Jet3D y VS ?

Hola Ale
 
Tenias razon, estan invertidos los ordenes.
El tema es que aun así no puedo obtener la estructura con valores correctos.
El context no tiene drama, le pase lo que le pase, luego puedo obtenerlo correctamente.
El tema esta con los vertices.
No se por donde buscar, la estructura esta bien definida y es esta:
 
registerType: 'jeTLVertex'
as:#( (x float) (y float) (z float) ( pad float) "screen points"
(r float) (g float) (b float) (a float) "color"
(u float) (v float) (pad1 float) (pad2 float) " Uv's"
(sr float) (sg float) (sb float) ( pad3 float) "specular color"
);
 
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Luego declara esto, que no se para que lo hace:
 
// temporary: ! Get rid of the JE_ types!
#define
JE_RGBA jeRGBA
#define
JE_Rect jeRect
#define
JE_LVertex jeLVertex
#define
JE_TLVertex jeTLVertex
 
Intento obtenerla así:
 
>>drawFaceCB: aJetTransformedLitVertex numVertex: count context: context
 
JetTransformedLitVertex fromPointer: context.
 
JetPointer>>fromPointer: aPointer
 
"Returns an initialized instance of the receiver pointing to aPointer"
 
^self basicNew initializeFromPointer: aPointer
 
>>initializeFromPointer: aPointer
" Private - Initialize the receiver from aPointer. "
 
aPointer isExternalAddress ifFalse: [
"convert to external address..."
(aPointer isNil or: [ aPointer = 0 ]) ifTrue: [ ^nil ].
^self initializeFromPointer: aPointer asExternalAddress
].
aPointer isValid ifFalse: [ ^nil ].
self
initializePointerTo: self structureName
with: aPointer.
 
Retorna :
TLitV[ -1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8
(-1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8)
(-1,07374176e8 -1,07374176e8 -1,07374176e8) -1,07374176e8
(-1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8) ].
 
Esto debería devolver la primera estructura.
Si le sumo los 64 byte para obtener la proxima, pasa lo mismo.
 
Saludos kiko


--- El vie 12-dic-08, Alejandro F. Reimondo <aleReimondo@...> escribió:
De: Alejandro F. Reimondo <aleReimondo@...>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@...
Fecha: viernes, 12 de diciembre de 2008, 7:55 pm


Fijate si el callback te está llegando con los argumentos
 en el orden inverso... (primero el Context, luego el size
 y por último el que te interesa)
A veces ocurre que el callback es llamado con convencion C
 o pascal y ocurre esa inversion en los argumentos.
Paciencia... :-)
Viendo la definición del callback, creo que es correcto lo que
 decis de que te llega un puntero a estructuras, con lo que
 debes sumar (a la externalAddress inicial), para tener la
 estructura siguiente es el #sizeInBytes de (la estructura en) el elemento.
Si usas un debugger de bajo nivel, es facil ver justo antes de la llamada
 al callback, que valores (direcciones) tienen los argumentos
 y luego al atender el callback en Smalltalk ves la address que
 tenes en el primer argumento, y comprobas si el orden es el correcto
 o estan invertidos.
suerte,
Ale.
 
 
 
----- Original Message -----
Sent: Friday, December 12, 2008 9:01 AM
Subject: Re: [objetos] Jet3D y VS ?

Hola Ale !!

Gracias.

Amplio el panorama, esta es la definición de la función del lado de la DLL:

typedef void jeBSPNode_DrawFaceC B(const jeTLVertex *Verts, int32 NumVerts, void *Context);

Así declara el array en la DLL:

jeTLVertex      TLVerts[MAX_ TEMP_VERTS] ; //MAX_TEMP_VERTS =128

Y así llama a la función callback en la DLL:

BSP->DrawFaceCB(TLVerts, ClipInfo.NumDstVert s, BSP->DrawFaceCBContext) ;

Mis conocimientos C son chatos, pero creo que es un array de struturas ??.

Si hago JetDLL strutureNamed:´jeTLVertex´ atAddress: aJetTransformedLitV ertex    asExternalAddress.

Retorna una extrutura con valores incorrectos y si le sumo 1 hace lo mismo.

Tambien intento definir una estrutura así:

registerType: 'jeArray'

            as:#((element '*jeTLVertex' )

          );

Pero no funciona.

Cual es el problema ¿?

Saludos kiko
PD: Perdon capas no entendí tu sugerencia
--- El jue 11-dic-08, Alejandro F. Reimondo <aleReimondo@ smalltalking. net> escribió:
De: Alejandro F. Reimondo <aleReimondo@ smalltalking. net>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@ gruposyahoo. com.ar
Fecha: jueves, 11 de diciembre de 2008, 8:44 pm


Hola Kiko,
Según entendí, al callback te llega la direccion de un array
 conteniendo punteros a las estructuras que te interesa usar.
Si es así, el integer que tenes como argumento es la direccion del array,
 por lo que a ese entero lo podes transformar en un ExternalAddress
 (argument asExternalAddress) .
El tener una external address te es conveniente pues al sumarle uno
 (anExternalAddress + 1) devuelve la dirección del siguiente puntero
 en el array.
Teniendo la dirección, podes instanciar una estructura con la dirección
 APUNTADA en esa dirección como se hace normalmente (es muy
 provable que el array sea de punteros a estructuras y no de
 estructuras -asegurate de esto-, por lo que, si es un array de
 punteros, en cada dirección tenes un puntero a la estructura
 en cuestion, es decir, sacá el uLong apuntado por la dirección,
 transformala en otra dirección y con eso instanciá la estructura).
Si es un array de estructuras, preguntá de nuevo, si no te
 das cuenta cómo resolverlo.
Quizás no sea necesario construir todo el array..., quizás te conviene
    ir iterando e instanciar la estructura que se necesita a partir de la
    dirección...
Si estas usando debugger de bajo nivel, es conveniente que
 coloques un breakpoint antes de la activación del callback
 para ver que es lo que esta pasandole al callback y cómo
 lo recibís del lado de smalltalk... y como lo vas usando.
suerte, no solo es duro,... además es aburrido :-)
Ale.
 
 
 
----- Original Message -----
Sent: Thursday, December 11, 2008 4:35 PM
Subject: [objetos] Jet3D y VS ?

Hola Gente
 
Estoy trabajando con Jet3D y VS y tengo un pequeño inconveniente.
Necesito rendear la cara de un Brush que Jet envía por medio de un callback en forma de:
JetTransformedLitVe rtex que es igual a GenesisTransformedL itVertex.
 
El tema es que yo tengo este mensaje para el callback:
>>drawFaceCB: aJetTransformedLitV ertex numVertex: count context: context
 
Ahora el tema es que este aJetTransformedLitV ertex es un array del lado de la DLL , pero de el lado VS es un integer pues lo declare como ulong. (DrawFaceCallBack ( ulong ulong ulong ) none c)
 
Como reconstruyo el array del lado de VS ?.
 
Intento con:
JetTransformedLitVe rtex fromPointer: aJetTransformedL itVertex , pero retorna una estructura incorrecta.
 
Busque por el lado de ExternalBuffer, pero no encuentro algo util.
En MT simplemente hacía por ejemplo GenesisVector3D fromBytes: aBytes y listo, pero aca nose.
 
Viendo la implementacion de la estructura en jet encuentro esto:
typedef
struct
{
/*
jeVec3d Position;
jeRGBA Color,SpecularColor ;
float u,v,pad1,pad2;
*/
// FIXME: Convert 3d X,Y,Z to jeVec3d
float X, Y, Z, pad; // 3d vertex
// FIXME: Convert r,g,b,a to JE_RGBA
float r, g, b, a; // color
float u, v,pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeLVertex;
// 64 bytes
// Transformed Lit vertex
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Ambos son iguales !!!!!. Cual es la diferencia, si se puede saber y preguntar aquí.
Estoy ciego o me estoy volviendo loco.jajajja o soy un nabo jajaja
 
saludos kiko
 
PD: Que duro es trabajar acá abajo jajaj



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile.yahoo.com/onesearch

#16885 De: kikoGregoris <kikogregoris@...>
Fecha: Lun, 15 de Dic, 2008 1:16 pm
Asunto: Re: [objetos] Jet3D y VS ?
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Ale
 
Otra pregunta que tengo es.
Por qué el proceso no es reasumible ?.
Adjunto una captura para que veas el stack de métodos activados.
 
ESto es algo que no ocurre con la implementación de particulas
 
saludos kiko


--- El lun 15-dic-08, kikoGregoris <kikogregoris@...> escribió:
De: kikoGregoris <kikogregoris@...>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@...
Fecha: lunes, 15 de diciembre de 2008, 9:37 am

Hola Ale
 
Tenias razon, estan invertidos los ordenes.
El tema es que aun así no puedo obtener la estructura con valores correctos.
El context no tiene drama, le pase lo que le pase, luego puedo obtenerlo correctamente.
El tema esta con los vertices.
No se por donde buscar, la estructura esta bien definida y es esta:
 
registerType: 'jeTLVertex'
as:#( (x float) (y float) (z float) ( pad float) "screen points"
(r float) (g float) (b float) (a float) "color"
(u float) (v float) (pad1 float) (pad2 float) " Uv's"
(sr float) (sg float) (sb float) ( pad3 float) "specular color"
);
 
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Luego declara esto, que no se para que lo hace:
 
// temporary: ! Get rid of the JE_ types!
#define
JE_RGBA jeRGBA
#define
JE_Rect jeRect
#define
JE_LVertex jeLVertex
#define
JE_TLVertex jeTLVertex
 
Intento obtenerla así:
 
>>drawFaceCB: aJetTransformedLitV ertex numVertex: count context: context
 
JetTransformedLitVe rtex fromPointer: context.
 
JetPointer>>fromPointer: aPointer
 
"Returns an initialized instance of the receiver pointing to aPointer"
 
^self basicNew initializeFromPoint er: aPointer
 
>>initializeFromPoint er: aPointer
" Private - Initialize the receiver from aPointer. "
 
aPointer isExternalAddress ifFalse: [
"convert to external address..."
(aPointer isNil or: [ aPointer = 0 ]) ifTrue: [ ^nil ].
^self initializeFromPoint er: aPointer asExternalAddress
].
aPointer isValid ifFalse: [ ^nil ].
self
initializePointerTo : self structureName
with: aPointer.
 
Retorna :
TLitV[ -1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8
(-1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8)
(-1,07374176e8 -1,07374176e8 -1,07374176e8) -1,07374176e8
(-1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8) ].
 
Esto debería devolver la primera estructura.
Si le sumo los 64 byte para obtener la proxima, pasa lo mismo.
 
Saludos kiko


--- El vie 12-dic-08, Alejandro F. Reimondo <aleReimondo@ smalltalking. net> escribió:
De: Alejandro F. Reimondo <aleReimondo@ smalltalking. net>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@ gruposyahoo. com.ar
Fecha: viernes, 12 de diciembre de 2008, 7:55 pm


Fijate si el callback te está llegando con los argumentos
 en el orden inverso... (primero el Context, luego el size
 y por último el que te interesa)
A veces ocurre que el callback es llamado con convencion C
 o pascal y ocurre esa inversion en los argumentos.
Paciencia... :-)
Viendo la definición del callback, creo que es correcto lo que
 decis de que te llega un puntero a estructuras, con lo que
 debes sumar (a la externalAddress inicial), para tener la
 estructura siguiente es el #sizeInBytes de (la estructura en) el elemento.
Si usas un debugger de bajo nivel, es facil ver justo antes de la llamada
 al callback, que valores (direcciones) tienen los argumentos
 y luego al atender el callback en Smalltalk ves la address que
 tenes en el primer argumento, y comprobas si el orden es el correcto
 o estan invertidos.
suerte,
Ale.
 
 
 
----- Original Message -----
Sent: Friday, December 12, 2008 9:01 AM
Subject: Re: [objetos] Jet3D y VS ?

 

Hola Ale !!

 

Gracias.

 

Amplio el panorama, esta es la definición de la función del lado de la DLL:

 

typedef void jeBSPNode_DrawFaceC B(const jeTLVertex *Verts, int32 NumVerts, void *Context);

 

Así declara el array en la DLL:

 

jeTLVertex      TLVerts[MAX_ TEMP_VERTS] ; //MAX_TEMP_VERTS =128

 

Y así llama a la función callback en la DLL:

 

BSP->DrawFaceCB(TLVerts, ClipInfo.NumDstVert s, BSP->DrawFaceCBContext) ;

 

Mis conocimientos C son chatos, pero creo que es un array de struturas ??.

 

Si hago JetDLL strutureNamed:´jeTLVertex´ atAddress: aJetTransformedLitV ertex    asExternalAddress.

 

Retorna una extrutura con valores incorrectos y si le sumo 1 hace lo mismo.

 

Tambien intento definir una estrutura así:

registerType: 'jeArray'

            as:#((element '*jeTLVertex' )

          );

 

Pero no funciona.

 

Cual es el problema ¿?

 

Saludos kiko
PD: Perdon capas no entendí tu sugerencia
--- El jue 11-dic-08, Alejandro F. Reimondo <aleReimondo@ smalltalking. net> escribió:
De: Alejandro F. Reimondo <aleReimondo@ smalltalking. net>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@ gruposyahoo. com.ar
Fecha: jueves, 11 de diciembre de 2008, 8:44 pm


Hola Kiko,
Según entendí, al callback te llega la direccion de un array
 conteniendo punteros a las estructuras que te interesa usar.
Si es así, el integer que tenes como argumento es la direccion del array,
 por lo que a ese entero lo podes transformar en un ExternalAddress
 (argument asExternalAddress) .
El tener una external address te es conveniente pues al sumarle uno
 (anExternalAddress + 1) devuelve la dirección del siguiente puntero
 en el array.
Teniendo la dirección, podes instanciar una estructura con la dirección
 APUNTADA en esa dirección como se hace normalmente (es muy
 provable que el array sea de punteros a estructuras y no de
 estructuras -asegurate de esto-, por lo que, si es un array de
 punteros, en cada dirección tenes un puntero a la estructura
 en cuestion, es decir, sacá el uLong apuntado por la dirección,
 transformala en otra dirección y con eso instanciá la estructura).
Si es un array de estructuras, preguntá de nuevo, si no te
 das cuenta cómo resolverlo.
Quizás no sea necesario construir todo el array..., quizás te conviene
    ir iterando e instanciar la estructura que se necesita a partir de la
    dirección...
Si estas usando debugger de bajo nivel, es conveniente que
 coloques un breakpoint antes de la activación del callback
 para ver que es lo que esta pasandole al callback y cómo
 lo recibís del lado de smalltalk... y como lo vas usando.
suerte, no solo es duro,... además es aburrido :-)
Ale.
 
 
 
----- Original Message -----
Sent: Thursday, December 11, 2008 4:35 PM
Subject: [objetos] Jet3D y VS ?

Hola Gente
 
Estoy trabajando con Jet3D y VS y tengo un pequeño inconveniente.
Necesito rendear la cara de un Brush que Jet envía por medio de un callback en forma de:
JetTransformedLitVe rtex que es igual a GenesisTransformedL itVertex.
 
El tema es que yo tengo este mensaje para el callback:
>>drawFaceCB: aJetTransformedLitV ertex numVertex: count context: context
 
Ahora el tema es que este aJetTransformedLitV ertex es un array del lado de la DLL , pero de el lado VS es un integer pues lo declare como ulong. (DrawFaceCallBack ( ulong ulong ulong ) none c)
 
Como reconstruyo el array del lado de VS ?.
 
Intento con:
JetTransformedLitVe rtex fromPointer: aJetTransformedL itVertex , pero retorna una estructura incorrecta.
 
Busque por el lado de ExternalBuffer, pero no encuentro algo util.
En MT simplemente hacía por ejemplo GenesisVector3D fromBytes: aBytes y listo, pero aca nose.
 
Viendo la implementacion de la estructura en jet encuentro esto:
typedef
struct
{
/*
jeVec3d Position;
jeRGBA Color,SpecularColor ;
float u,v,pad1,pad2;
*/
// FIXME: Convert 3d X,Y,Z to jeVec3d
float X, Y, Z, pad; // 3d vertex
// FIXME: Convert r,g,b,a to JE_RGBA
float r, g, b, a; // color
float u, v,pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeLVertex;
// 64 bytes
// Transformed Lit vertex
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Ambos son iguales !!!!!. Cual es la diferencia, si se puede saber y preguntar aquí.
Estoy ciego o me estoy volviendo loco.jajajja o soy un nabo jajaja
 
saludos kiko
 
PD: Que duro es trabajar acá abajo jajaj



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile. yahoo.com/ onesearch



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16884 De: kikoGregoris <kikogregoris@...>
Fecha: Lun, 15 de Dic, 2008 12:37 pm
Asunto: Re: [objetos] Jet3D y VS ?
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Ale
 
Tenias razon, estan invertidos los ordenes.
El tema es que aun así no puedo obtener la estructura con valores correctos.
El context no tiene drama, le pase lo que le pase, luego puedo obtenerlo correctamente.
El tema esta con los vertices.
No se por donde buscar, la estructura esta bien definida y es esta:
 
registerType: 'jeTLVertex'
as:#( (x float) (y float) (z float) ( pad float) "screen points"
(r float) (g float) (b float) (a float) "color"
(u float) (v float) (pad1 float) (pad2 float) " Uv's"
(sr float) (sg float) (sb float) ( pad3 float) "specular color"
);
 
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Luego declara esto, que no se para que lo hace:
 
// temporary: ! Get rid of the JE_ types!
#define
JE_RGBA jeRGBA
#define
JE_Rect jeRect
#define
JE_LVertex jeLVertex
#define
JE_TLVertex jeTLVertex
 
Intento obtenerla así:
 
>>drawFaceCB: aJetTransformedLitVertex numVertex: count context: context
 
JetTransformedLitVertex fromPointer: context.
 
JetPointer>>fromPointer: aPointer
 
"Returns an initialized instance of the receiver pointing to aPointer"
 
^self basicNew initializeFromPointer: aPointer
 
>>initializeFromPointer: aPointer
" Private - Initialize the receiver from aPointer. "
 
aPointer isExternalAddress ifFalse: [
"convert to external address..."
(aPointer isNil or: [ aPointer = 0 ]) ifTrue: [ ^nil ].
^self initializeFromPointer: aPointer asExternalAddress
].
aPointer isValid ifFalse: [ ^nil ].
self
initializePointerTo: self structureName
with: aPointer.
 
Retorna :
TLitV[ -1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8
(-1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8)
(-1,07374176e8 -1,07374176e8 -1,07374176e8) -1,07374176e8
(-1,07374176e8 -1,07374176e8 -1,07374176e8 -1,07374176e8) ].
 
Esto debería devolver la primera estructura.
Si le sumo los 64 byte para obtener la proxima, pasa lo mismo.
 
Saludos kiko


--- El vie 12-dic-08, Alejandro F. Reimondo <aleReimondo@...> escribió:
De: Alejandro F. Reimondo <aleReimondo@...>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@...
Fecha: viernes, 12 de diciembre de 2008, 7:55 pm


Fijate si el callback te está llegando con los argumentos
 en el orden inverso... (primero el Context, luego el size
 y por último el que te interesa)
A veces ocurre que el callback es llamado con convencion C
 o pascal y ocurre esa inversion en los argumentos.
Paciencia... :-)
Viendo la definición del callback, creo que es correcto lo que
 decis de que te llega un puntero a estructuras, con lo que
 debes sumar (a la externalAddress inicial), para tener la
 estructura siguiente es el #sizeInBytes de (la estructura en) el elemento.
Si usas un debugger de bajo nivel, es facil ver justo antes de la llamada
 al callback, que valores (direcciones) tienen los argumentos
 y luego al atender el callback en Smalltalk ves la address que
 tenes en el primer argumento, y comprobas si el orden es el correcto
 o estan invertidos.
suerte,
Ale.
 
 
 
----- Original Message -----
Sent: Friday, December 12, 2008 9:01 AM
Subject: Re: [objetos] Jet3D y VS ?

 

Hola Ale !!

 

Gracias.

 

Amplio el panorama, esta es la definición de la función del lado de la DLL:

 

typedef void jeBSPNode_DrawFaceC B(const jeTLVertex *Verts, int32 NumVerts, void *Context);

 

Así declara el array en la DLL:

 

jeTLVertex      TLVerts[MAX_ TEMP_VERTS] ; //MAX_TEMP_VERTS =128

 

Y así llama a la función callback en la DLL:

 

BSP->DrawFaceCB(TLVerts, ClipInfo.NumDstVert s, BSP->DrawFaceCBContext) ;

 

Mis conocimientos C son chatos, pero creo que es un array de struturas ??.

 

Si hago JetDLL strutureNamed:´jeTLVertex´ atAddress: aJetTransformedLitV ertex    asExternalAddress.

 

Retorna una extrutura con valores incorrectos y si le sumo 1 hace lo mismo.

 

Tambien intento definir una estrutura así:

registerType: 'jeArray'

            as:#((element '*jeTLVertex' )

          );

 

Pero no funciona.

 

Cual es el problema ¿?

 

Saludos kiko
PD: Perdon capas no entendí tu sugerencia
--- El jue 11-dic-08, Alejandro F. Reimondo <aleReimondo@ smalltalking. net> escribió:
De: Alejandro F. Reimondo <aleReimondo@ smalltalking. net>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@ gruposyahoo. com.ar
Fecha: jueves, 11 de diciembre de 2008, 8:44 pm


Hola Kiko,
Según entendí, al callback te llega la direccion de un array
 conteniendo punteros a las estructuras que te interesa usar.
Si es así, el integer que tenes como argumento es la direccion del array,
 por lo que a ese entero lo podes transformar en un ExternalAddress
 (argument asExternalAddress) .
El tener una external address te es conveniente pues al sumarle uno
 (anExternalAddress + 1) devuelve la dirección del siguiente puntero
 en el array.
Teniendo la dirección, podes instanciar una estructura con la dirección
 APUNTADA en esa dirección como se hace normalmente (es muy
 provable que el array sea de punteros a estructuras y no de
 estructuras -asegurate de esto-, por lo que, si es un array de
 punteros, en cada dirección tenes un puntero a la estructura
 en cuestion, es decir, sacá el uLong apuntado por la dirección,
 transformala en otra dirección y con eso instanciá la estructura).
Si es un array de estructuras, preguntá de nuevo, si no te
 das cuenta cómo resolverlo.
Quizás no sea necesario construir todo el array..., quizás te conviene
    ir iterando e instanciar la estructura que se necesita a partir de la
    dirección...
Si estas usando debugger de bajo nivel, es conveniente que
 coloques un breakpoint antes de la activación del callback
 para ver que es lo que esta pasandole al callback y cómo
 lo recibís del lado de smalltalk... y como lo vas usando.
suerte, no solo es duro,... además es aburrido :-)
Ale.
 
 
 
----- Original Message -----
Sent: Thursday, December 11, 2008 4:35 PM
Subject: [objetos] Jet3D y VS ?

Hola Gente
 
Estoy trabajando con Jet3D y VS y tengo un pequeño inconveniente.
Necesito rendear la cara de un Brush que Jet envía por medio de un callback en forma de:
JetTransformedLitVe rtex que es igual a GenesisTransformedL itVertex.
 
El tema es que yo tengo este mensaje para el callback:
>>drawFaceCB: aJetTransformedLitV ertex numVertex: count context: context
 
Ahora el tema es que este aJetTransformedLitV ertex es un array del lado de la DLL , pero de el lado VS es un integer pues lo declare como ulong. (DrawFaceCallBack ( ulong ulong ulong ) none c)
 
Como reconstruyo el array del lado de VS ?.
 
Intento con:
JetTransformedLitVe rtex fromPointer: aJetTransformedL itVertex , pero retorna una estructura incorrecta.
 
Busque por el lado de ExternalBuffer, pero no encuentro algo util.
En MT simplemente hacía por ejemplo GenesisVector3D fromBytes: aBytes y listo, pero aca nose.
 
Viendo la implementacion de la estructura en jet encuentro esto:
typedef
struct
{
/*
jeVec3d Position;
jeRGBA Color,SpecularColor ;
float u,v,pad1,pad2;
*/
// FIXME: Convert 3d X,Y,Z to jeVec3d
float X, Y, Z, pad; // 3d vertex
// FIXME: Convert r,g,b,a to JE_RGBA
float r, g, b, a; // color
float u, v,pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeLVertex;
// 64 bytes
// Transformed Lit vertex
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Ambos son iguales !!!!!. Cual es la diferencia, si se puede saber y preguntar aquí.
Estoy ciego o me estoy volviendo loco.jajajja o soy un nabo jajaja
 
saludos kiko
 
PD: Que duro es trabajar acá abajo jajaj



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
http://ar.mobile.yahoo.com/onesearch

#16883 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Vie, 12 de Dic, 2008 10:55 pm
Asunto: Re: [objetos] Jet3D y VS ?
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 

Fijate si el callback te está llegando con los argumentos
 en el orden inverso... (primero el Context, luego el size
 y por último el que te interesa)
A veces ocurre que el callback es llamado con convencion C
 o pascal y ocurre esa inversion en los argumentos.
Paciencia... :-)
Viendo la definición del callback, creo que es correcto lo que
 decis de que te llega un puntero a estructuras, con lo que
 debes sumar (a la externalAddress inicial), para tener la
 estructura siguiente es el #sizeInBytes de (la estructura en) el elemento.
Si usas un debugger de bajo nivel, es facil ver justo antes de la llamada
 al callback, que valores (direcciones) tienen los argumentos
 y luego al atender el callback en Smalltalk ves la address que
 tenes en el primer argumento, y comprobas si el orden es el correcto
 o estan invertidos.
suerte,
Ale.
 
 
 
----- Original Message -----
Sent: Friday, December 12, 2008 9:01 AM
Subject: Re: [objetos] Jet3D y VS ?

 

Hola Ale !!

 

Gracias.

 

Amplio el panorama, esta es la definición de la función del lado de la DLL:

 

typedef void jeBSPNode_DrawFaceCB(const jeTLVertex *Verts, int32 NumVerts, void *Context);

 

Así declara el array en la DLL:

 

jeTLVertex      TLVerts[MAX_TEMP_VERTS]; //MAX_TEMP_VERTS =128

 

Y así llama a la función callback en la DLL:

 

BSP->DrawFaceCB(TLVerts, ClipInfo.NumDstVerts, BSP->DrawFaceCBContext);

 

Mis conocimientos C son chatos, pero creo que es un array de struturas ??.

 

Si hago JetDLL strutureNamed:´jeTLVertex´ atAddress: aJetTransformedLitVertex    asExternalAddress.

 

Retorna una extrutura con valores incorrectos y si le sumo 1 hace lo mismo.

 

Tambien intento definir una estrutura así:

registerType: 'jeArray'

            as:#((element '*jeTLVertex')

          );

 

Pero no funciona.

 

Cual es el problema ¿?

 

Saludos kiko
PD: Perdon capas no entendí tu sugerencia
--- El jue 11-dic-08, Alejandro F. Reimondo <aleReimondo@...> escribió:
De: Alejandro F. Reimondo <aleReimondo@...>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@...
Fecha: jueves, 11 de diciembre de 2008, 8:44 pm


Hola Kiko,
Según entendí, al callback te llega la direccion de un array
 conteniendo punteros a las estructuras que te interesa usar.
Si es así, el integer que tenes como argumento es la direccion del array,
 por lo que a ese entero lo podes transformar en un ExternalAddress
 (argument asExternalAddress) .
El tener una external address te es conveniente pues al sumarle uno
 (anExternalAddress + 1) devuelve la dirección del siguiente puntero
 en el array.
Teniendo la dirección, podes instanciar una estructura con la dirección
 APUNTADA en esa dirección como se hace normalmente (es muy
 provable que el array sea de punteros a estructuras y no de
 estructuras -asegurate de esto-, por lo que, si es un array de
 punteros, en cada dirección tenes un puntero a la estructura
 en cuestion, es decir, sacá el uLong apuntado por la dirección,
 transformala en otra dirección y con eso instanciá la estructura).
Si es un array de estructuras, preguntá de nuevo, si no te
 das cuenta cómo resolverlo.
Quizás no sea necesario construir todo el array..., quizás te conviene
    ir iterando e instanciar la estructura que se necesita a partir de la
    dirección...
Si estas usando debugger de bajo nivel, es conveniente que
 coloques un breakpoint antes de la activación del callback
 para ver que es lo que esta pasandole al callback y cómo
 lo recibís del lado de smalltalk... y como lo vas usando.
suerte, no solo es duro,... además es aburrido :-)
Ale.
 
 
 
----- Original Message -----
Sent: Thursday, December 11, 2008 4:35 PM
Subject: [objetos] Jet3D y VS ?

Hola Gente
 
Estoy trabajando con Jet3D y VS y tengo un pequeño inconveniente.
Necesito rendear la cara de un Brush que Jet envía por medio de un callback en forma de:
JetTransformedLitVe rtex que es igual a GenesisTransformedL itVertex.
 
El tema es que yo tengo este mensaje para el callback:
>>drawFaceCB: aJetTransformedLitV ertex numVertex: count context: context
 
Ahora el tema es que este aJetTransformedLitV ertex es un array del lado de la DLL , pero de el lado VS es un integer pues lo declare como ulong. (DrawFaceCallBack ( ulong ulong ulong ) none c)
 
Como reconstruyo el array del lado de VS ?.
 
Intento con:
JetTransformedLitVe rtex fromPointer: aJetTransformedL itVertex , pero retorna una estructura incorrecta.
 
Busque por el lado de ExternalBuffer, pero no encuentro algo util.
En MT simplemente hacía por ejemplo GenesisVector3D fromBytes: aBytes y listo, pero aca nose.
 
Viendo la implementacion de la estructura en jet encuentro esto:
typedef
struct
{
/*
jeVec3d Position;
jeRGBA Color,SpecularColor ;
float u,v,pad1,pad2;
*/
// FIXME: Convert 3d X,Y,Z to jeVec3d
float X, Y, Z, pad; // 3d vertex
// FIXME: Convert r,g,b,a to JE_RGBA
float r, g, b, a; // color
float u, v,pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeLVertex;
// 64 bytes
// Transformed Lit vertex
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Ambos son iguales !!!!!. Cual es la diferencia, si se puede saber y preguntar aquí.
Estoy ciego o me estoy volviendo loco.jajajja o soy un nabo jajaja
 
saludos kiko
 
PD: Que duro es trabajar acá abajo jajaj



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16882 De: kikoGregoris <kikogregoris@...>
Fecha: Vie, 12 de Dic, 2008 12:01 pm
Asunto: Re: [objetos] Jet3D y VS ?
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 

 

Hola Ale !!

 

Gracias.

 

Amplio el panorama, esta es la definición de la función del lado de la DLL:

 

typedef void jeBSPNode_DrawFaceCB(const jeTLVertex *Verts, int32 NumVerts, void *Context);

 

Así declara el array en la DLL:

 

jeTLVertex      TLVerts[MAX_TEMP_VERTS]; //MAX_TEMP_VERTS =128

 

Y así llama a la función callback en la DLL:

 

BSP->DrawFaceCB(TLVerts, ClipInfo.NumDstVerts, BSP->DrawFaceCBContext);

 

Mis conocimientos C son chatos, pero creo que es un array de struturas ??.

 

Si hago JetDLL strutureNamed:´jeTLVertex´ atAddress: aJetTransformedLitVertex    asExternalAddress.

 

Retorna una extrutura con valores incorrectos y si le sumo 1 hace lo mismo.

 

Tambien intento definir una estrutura así:

registerType: 'jeArray'

            as:#((element '*jeTLVertex')

          );

 

Pero no funciona.

 

Cual es el problema ¿?

 

Saludos kiko
PD: Perdon capas no entendí tu sugerencia
--- El jue 11-dic-08, Alejandro F. Reimondo <aleReimondo@...> escribió:
De: Alejandro F. Reimondo <aleReimondo@...>
Asunto: Re: [objetos] Jet3D y VS ?
Para: smalltalking@...
Fecha: jueves, 11 de diciembre de 2008, 8:44 pm


Hola Kiko,
Según entendí, al callback te llega la direccion de un array
 conteniendo punteros a las estructuras que te interesa usar.
Si es así, el integer que tenes como argumento es la direccion del array,
 por lo que a ese entero lo podes transformar en un ExternalAddress
 (argument asExternalAddress) .
El tener una external address te es conveniente pues al sumarle uno
 (anExternalAddress + 1) devuelve la dirección del siguiente puntero
 en el array.
Teniendo la dirección, podes instanciar una estructura con la dirección
 APUNTADA en esa dirección como se hace normalmente (es muy
 provable que el array sea de punteros a estructuras y no de
 estructuras -asegurate de esto-, por lo que, si es un array de
 punteros, en cada dirección tenes un puntero a la estructura
 en cuestion, es decir, sacá el uLong apuntado por la dirección,
 transformala en otra dirección y con eso instanciá la estructura).
Si es un array de estructuras, preguntá de nuevo, si no te
 das cuenta cómo resolverlo.
Quizás no sea necesario construir todo el array..., quizás te conviene
    ir iterando e instanciar la estructura que se necesita a partir de la
    dirección...
Si estas usando debugger de bajo nivel, es conveniente que
 coloques un breakpoint antes de la activación del callback
 para ver que es lo que esta pasandole al callback y cómo
 lo recibís del lado de smalltalk... y como lo vas usando.
suerte, no solo es duro,... además es aburrido :-)
Ale.
 
 
 
----- Original Message -----
Sent: Thursday, December 11, 2008 4:35 PM
Subject: [objetos] Jet3D y VS ?

Hola Gente
 
Estoy trabajando con Jet3D y VS y tengo un pequeño inconveniente.
Necesito rendear la cara de un Brush que Jet envía por medio de un callback en forma de:
JetTransformedLitVe rtex que es igual a GenesisTransformedL itVertex.
 
El tema es que yo tengo este mensaje para el callback:
>>drawFaceCB: aJetTransformedLitV ertex numVertex: count context: context
 
Ahora el tema es que este aJetTransformedLitV ertex es un array del lado de la DLL , pero de el lado VS es un integer pues lo declare como ulong. (DrawFaceCallBack ( ulong ulong ulong ) none c)
 
Como reconstruyo el array del lado de VS ?.
 
Intento con:
JetTransformedLitVe rtex fromPointer: aJetTransformedL itVertex , pero retorna una estructura incorrecta.
 
Busque por el lado de ExternalBuffer, pero no encuentro algo util.
En MT simplemente hacía por ejemplo GenesisVector3D fromBytes: aBytes y listo, pero aca nose.
 
Viendo la implementacion de la estructura en jet encuentro esto:
typedef
struct
{
/*
jeVec3d Position;
jeRGBA Color,SpecularColor ;
float u,v,pad1,pad2;
*/
// FIXME: Convert 3d X,Y,Z to jeVec3d
float X, Y, Z, pad; // 3d vertex
// FIXME: Convert r,g,b,a to JE_RGBA
float r, g, b, a; // color
float u, v,pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeLVertex;
// 64 bytes
// Transformed Lit vertex
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Ambos son iguales !!!!!. Cual es la diferencia, si se puede saber y preguntar aquí.
Estoy ciego o me estoy volviendo loco.jajajja o soy un nabo jajaja
 
saludos kiko
 
PD: Que duro es trabajar acá abajo jajaj



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer. yahoo.com/ cocina/



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16881 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Jue, 11 de Dic, 2008 11:44 pm
Asunto: Re: [objetos] Jet3D y VS ?
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 

Hola Kiko,
Según entendí, al callback te llega la direccion de un array
 conteniendo punteros a las estructuras que te interesa usar.
Si es así, el integer que tenes como argumento es la direccion del array,
 por lo que a ese entero lo podes transformar en un ExternalAddress
 (argument asExternalAddress).
El tener una external address te es conveniente pues al sumarle uno
 (anExternalAddress + 1) devuelve la dirección del siguiente puntero
 en el array.
Teniendo la dirección, podes instanciar una estructura con la dirección
 APUNTADA en esa dirección como se hace normalmente (es muy
 provable que el array sea de punteros a estructuras y no de
 estructuras -asegurate de esto-, por lo que, si es un array de
 punteros, en cada dirección tenes un puntero a la estructura
 en cuestion, es decir, sacá el uLong apuntado por la dirección,
 transformala en otra dirección y con eso instanciá la estructura).
Si es un array de estructuras, preguntá de nuevo, si no te
 das cuenta cómo resolverlo.
Quizás no sea necesario construir todo el array..., quizás te conviene
    ir iterando e instanciar la estructura que se necesita a partir de la
    dirección...
Si estas usando debugger de bajo nivel, es conveniente que
 coloques un breakpoint antes de la activación del callback
 para ver que es lo que esta pasandole al callback y cómo
 lo recibís del lado de smalltalk... y como lo vas usando.
suerte, no solo es duro,... además es aburrido :-)
Ale.
 
 
 
----- Original Message -----
Sent: Thursday, December 11, 2008 4:35 PM
Subject: [objetos] Jet3D y VS ?

Hola Gente
 
Estoy trabajando con Jet3D y VS y tengo un pequeño inconveniente.
Necesito rendear la cara de un Brush que Jet envía por medio de un callback en forma de:
JetTransformedLitVertex que es igual a GenesisTransformedLitVertex.
 
El tema es que yo tengo este mensaje para el callback:
>>drawFaceCB: aJetTransformedLitVertex numVertex: count context: context
 
Ahora el tema es que este aJetTransformedLitVertex es un array del lado de la DLL , pero de el lado VS es un integer pues lo declare como ulong. (DrawFaceCallBack ( ulong ulong ulong ) none c)
 
Como reconstruyo el array del lado de VS ?.
 
Intento con:
JetTransformedLitVertex fromPointer:aJetTransformedLitVertex , pero retorna una estructura incorrecta.
 
Busque por el lado de ExternalBuffer, pero no encuentro algo util.
En MT simplemente hacía por ejemplo GenesisVector3D fromBytes: aBytes y listo, pero aca nose.
 
Viendo la implementacion de la estructura en jet encuentro esto:
typedef
struct
{
/*
jeVec3d Position;
jeRGBA Color,SpecularColor;
float u,v,pad1,pad2;
*/
// FIXME: Convert 3d X,Y,Z to jeVec3d
float X, Y, Z, pad; // 3d vertex
// FIXME: Convert r,g,b,a to JE_RGBA
float r, g, b, a; // color
float u, v,pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeLVertex;
// 64 bytes
// Transformed Lit vertex
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Ambos son iguales !!!!!. Cual es la diferencia, si se puede saber y preguntar aquí.
Estoy ciego o me estoy volviendo loco.jajajja o soy un nabo jajaja
 
saludos kiko
 
PD: Que duro es trabajar acá abajo jajaj



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16880 De: kikoGregoris <kikogregoris@...>
Fecha: Jue, 11 de Dic, 2008 7:35 pm
Asunto: Jet3D y VS ?
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Gente
 
Estoy trabajando con Jet3D y VS y tengo un pequeño inconveniente.
Necesito rendear la cara de un Brush que Jet envía por medio de un callback en forma de:
JetTransformedLitVertex que es igual a GenesisTransformedLitVertex.
 
El tema es que yo tengo este mensaje para el callback:
>>drawFaceCB: aJetTransformedLitVertex numVertex: count context: context
 
Ahora el tema es que este aJetTransformedLitVertex es un array del lado de la DLL , pero de el lado VS es un integer pues lo declare como ulong. (DrawFaceCallBack ( ulong ulong ulong ) none c)
 
Como reconstruyo el array del lado de VS ?.
 
Intento con:
JetTransformedLitVertex fromPointer:aJetTransformedLitVertex , pero retorna una estructura incorrecta.
 
Busque por el lado de ExternalBuffer, pero no encuentro algo util.
En MT simplemente hacía por ejemplo GenesisVector3D fromBytes: aBytes y listo, pero aca nose.
 
Viendo la implementacion de la estructura en jet encuentro esto:
typedef
struct
{
/*
jeVec3d Position;
jeRGBA Color,SpecularColor;
float u,v,pad1,pad2;
*/
// FIXME: Convert 3d X,Y,Z to jeVec3d
float X, Y, Z, pad; // 3d vertex
// FIXME: Convert r,g,b,a to JE_RGBA
float r, g, b, a; // color
float u, v,pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeLVertex;
// 64 bytes
// Transformed Lit vertex
typedef
struct
{
float x, y, z, pad; // screen points
float r, g, b, a; // color
float u, v, pad1,pad2; // Uv's
float sr, sg, sb, pad3; // specular color
} jeTLVertex;
// 64 bytes
 
Ambos son iguales !!!!!. Cual es la diferencia, si se puede saber y preguntar aquí.
Estoy ciego o me estoy volviendo loco.jajajja o soy un nabo jajaja
 
saludos kiko
 
PD: Que duro es trabajar acá abajo jajaj



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16879 De: "Elvio Fernandez" <elvio.fernandez@...>
Fecha: Mié, 10 de Dic, 2008 12:19 am
Asunto: Re: [objetos] Fotos Cena fin de año Smalltalking
elvisman_780
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Que caripelas viejo!! Parecemos una banda de dealers del mercosur!!

:-D

Saludos

Elvio




El 9 de diciembre de 2008 16:33, Leo De Marco <leo@...> escribió:

Gente, les mando las fotos de la cena fin de año de Smallalking, voy a ver
cuando las publico en sitio en la parte de eventos, les aviso.

Saludos,
Leo



#16878 De: "Leo De Marco" <leo@...>
Fecha: Mar, 9 de Dic, 2008 7:33 pm
Asunto: Fotos Cena fin de año Smalltalking
azraelhamed
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Gente, les mando las fotos de la cena fin de año de Smallalking, voy a ver
cuando las publico en sitio en la parte de eventos, les aviso.

Saludos,
Leo

#16877 De: "Alejandro F. Reimondo" <aleReimondo@...>
Fecha: Vie, 5 de Dic, 2008 6:15 pm
Asunto: Re: [objetos] Programación a la defenciva !!
alereimondo
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola kiko,
 
>Como pueden ver, esta plagado de assert e if.
 
Como protegiendose en un mundo cruel :-P
 (hay quienes piensan que para que haya menos
 delito, es necesario espejar todos los vidrios
 y detras de vidrios polarizados en su auto burbuja
 -que es una extensión pobre y mas gorda de si
 mismos- se sienten mas seguros, como ...
 entre parentesis)  (void)
 
>Por otro lado en el código ST que tengo de referencía(el
> de ALe en Genesis3D) no encuentro nada de esto.
>En los accesos a APIs de genesis, Ale por lo general
> no toma precausiones extras.
 
Si las tomo, ante la evidencia de algun problema
 o situación que lo amerite; no en forma preventiva.
 
>El tema es, es una costumbre de los programadores C++ o ??.
 
No es un costumbre, así es conveniente trabajar
 si uno no usa el sistema mientras lo "declara".
 
>Cuando sería necesario tener precausiones al llamar funciones de APIs.
 
Cuando hay evidencia de que funciona mal en alguna situación.
A veces ocurre por ejemplo, que las librerías dejan los flags
 del coprocesador matemático encendidos y no se dispara
 una excepción hasta que... en algun momento... en tu sistema
 usas una cuenta con Floats... y mientras usas la librería no hay
 excepcion!!! est ees un caso dificil de detectar al usar librerías,
 ues el error se dispara en otra parte, y debes testear-borrar-
 los flags al finalizar la llamada que quizás ueda haber fallado
 sin generar excepcion relevante -ante la optica de quien hizo
 la librería-.
 
>Yo supongo que si las llamadas fallan desde ST no pasa nada,
> es decir solo se habre el debug y todo sigue andando.
 
Esa es una forma inocente de encontrar un "porqué".
Es necesario saber el porqué? y si aceptamos que así
 los sistemas funcionan? no basta?
 
>Por otra parte  en C++ las cosas no son así y los errores
> no chequeados pueden hacer caer el sistema con
> mayor facilidad.
 
Tambien podes trabajar asi (trabajando "por si acaso")
 en Smalltalk, lo interesante a mi entender es que podes
 construir un sistema estable sin proteger nada.
 
Se puede decir mucho a partir de tu observación,
 incluso creo que hemos hablado de esto en varias
 oportunidades (algunas aqui en la lista)
 por ejemplo:
- en smalltalk, el primer responsable frente a una falla
 es "el receptor", el cual tiene información contextual
 para atender una situacion inesperada (además
 puede usar instrospección -características que se
 pierden en un sistema heterogéneo, x.ejm. al usar
 librerias- ).
- también existen como mecanismo alternativo las
 excepciones (desde aprox. 1995 VS), las cuales permiten
 atender situaciones NO inesperadas [muchas personas
 que aprendieron desde entonces usan un mecanismo
 u otro indistintamente, como si fueran equivalentes...
 o solo excepciones... con aMartillo, todos son aClavo ].
- en smalltalk lo prioritario es la estabilidad, y como la
 estabilidad no es predecible formalmente, si ocurre
 es suficiente garantía de calidad de software (esto
 tiene mas implicancias, no quiero escribir mas sobre
 esto ahora)
- en un ambiente de objetos solo un error es posible.
- en un ambiente, un "error" compromete a un objeto (o
 a varios relacionados), pero de ninguna forma a todo
 el sistema (porque el sistema nunca es tan minúsculo
 como lo es un programa).
 Un sistema cerrado incorrecto no puede continuar
 de forma segura ni una instrucción adelante; por lo
 que "la solución" es eliminar todo el sistema; el manejo
 de estas situaciones por medio de excepciones (y
 sin tener una minima capacidad de instrospección)
 es una frazada corta y frente a esa pobreza lo mejor
 que uno puede hacer es poner escudos en cada
 situación que uno vea como potensialmente peligrosa.
- el esquema de trabajo (juego finito e infinito) es
 consistente con la forma de escribir y pensar
 mientras se hace un sistema.
- no es recomendable escribir codigo sin usar
 excepciones cuando es el unico mecanismo que
 uno tiene disponible.
 
hasta pronto,
Ale.
 
 
 
 
 
----- Original Message -----
Sent: Thursday, December 04, 2008 10:11 AM
Subject: [objetos] Programación a la defenciva !!

Hola Gente
 
Estoy usando Jet3D en un intento de aplicación. jajja.
El tema es que encuentro cosas como estas:
 
Level * Level_CreateFromFile( jeVFile * pF, jeWorld * pWorld, MaterialList_Struct * pGlobalMaterials, jePtrMgr * pPtrMgr,
float Version )
{
int32 nVersion ;
Level * pLevel ;
 
assert( jeVFile_IsValid( pF ) ) ;
assert( pWorld != NULL ) ;
assert( pGlobalMaterials != NULL ) ;
 
pLevel = JE_RAM_ALLOCATE_STRUCT( Level ) ;
if( pLevel == NULL )
goto LCFF_FAILURE ;
 
memset( pLevel, 0,
sizeof *pLevel ) ;
assert( (pLevel->nSignature = SIGNATURE) == SIGNATURE ) ;
// ASSIGN
 
pLevel->SelType = LEVEL_SELNONE ;
if( !jeVFile_Read( pF, &nVersion, sizeof nVersion ) )
return NULL;
 
if( nVersion != LEVEL_VERSION )
{
jeErrorLog_AddString(JE_ERR_FILEIO_READ, "Level_CreateFromFile Version.\n", NULL);
return NULL;
}
if( !Level_InitWorldData( pLevel, pWorld, pGlobalMaterials ) )
goto LCFF_FAILURE ;
Level_InitDefaultFace( pLevel );
 
if( !Level_LoadLists( pLevel, pF, pPtrMgr ) )
goto LCFF_FAILURE ;
 
if( !Level_LoadPrefs( pLevel, pF, Version ) )
goto LCFF_FAILURE ;
 
pLevel->pUndo = Undo_Create( LEVEL_DEFAULTUNDODEPTH ) ;
if( pLevel->pUndo == NULL )
goto LCFF_FAILURE ;
Level_InitUndoFunctions( pLevel );
return( pLevel );
 
LCFF_FAILURE :
if( pLevel != NULL )
Level_Destroy( &pLevel ) ;
jeErrorLog_AddString(JE_ERR_FILEIO_READ, "Level_CreateFromFile.\n", NULL);
return NULL ;
}
 
 
Como pueden ver, esta plagado de assert e if. Por otro lado en el código ST que tengo de referencía(el de ALe en Genesis3D) no encuentro nada de esto.
En los accesos a APIs de genesis, Ale por lo general no toma precausiones extras.
El tema es, es una costumbre de los programadores C++ o ??.
Cuando sería necesario tener precausiones al llamar funciones de APIs.
 
Yo supongo que si las llamadas fallan desde ST no pasa nada, es decir solo se habre el debug y todo sigue andando.
Por otra parte  en C++ las cosas no son así y los errores no chequeados pueden hacer caer el sistema con mayor facilidad.
 
Estoy muy errado ?
 
saludos kiko



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16876 De: "Angel \"Java\" Lopez" <ajlopez@...>
Fecha: Jue, 4 de Dic, 2008 9:14 pm
Asunto: Re: [objetos] Programación a la defenciva !!
ajlopez2000
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Respuesta rapida, tambien hay assert en Smalltalk:
 
 
Angel "Java" Lopez
 
 
----- Original Message -----
Sent: Thursday, December 04, 2008 11:11 AM
Subject: [objetos] Programación a la defenciva !!

Hola Gente
 
Estoy usando Jet3D en un intento de aplicación. jajja.
El tema es que encuentro cosas como estas:
 
Level * Level_CreateFromFile( jeVFile * pF, jeWorld * pWorld, MaterialList_Struct * pGlobalMaterials, jePtrMgr * pPtrMgr,
float Version )
{
int32 nVersion ;
Level * pLevel ;
 
assert( jeVFile_IsValid( pF ) ) ;
assert( pWorld != NULL ) ;
assert( pGlobalMaterials != NULL ) ;
 
pLevel = JE_RAM_ALLOCATE_STRUCT( Level ) ;
if( pLevel == NULL )
goto LCFF_FAILURE ;
 
memset( pLevel, 0,
sizeof *pLevel ) ;
assert( (pLevel->nSignature = SIGNATURE) == SIGNATURE ) ;
// ASSIGN
 
pLevel->SelType = LEVEL_SELNONE ;
if( !jeVFile_Read( pF, &nVersion, sizeof nVersion ) )
return NULL;
 
if( nVersion != LEVEL_VERSION )
{
jeErrorLog_AddString(JE_ERR_FILEIO_READ, "Level_CreateFromFile Version.\n", NULL);
return NULL;
}
if( !Level_InitWorldData( pLevel, pWorld, pGlobalMaterials ) )
goto LCFF_FAILURE ;
Level_InitDefaultFace( pLevel );
 
if( !Level_LoadLists( pLevel, pF, pPtrMgr ) )
goto LCFF_FAILURE ;
 
if( !Level_LoadPrefs( pLevel, pF, Version ) )
goto LCFF_FAILURE ;
 
pLevel->pUndo = Undo_Create( LEVEL_DEFAULTUNDODEPTH ) ;
if( pLevel->pUndo == NULL )
goto LCFF_FAILURE ;
Level_InitUndoFunctions( pLevel );
return( pLevel );
 
LCFF_FAILURE :
if( pLevel != NULL )
Level_Destroy( &pLevel ) ;
jeErrorLog_AddString(JE_ERR_FILEIO_READ, "Level_CreateFromFile.\n", NULL);
return NULL ;
}
 
 
Como pueden ver, esta plagado de assert e if. Por otro lado en el código ST que tengo de referencía(el de ALe en Genesis3D) no encuentro nada de esto.
En los accesos a APIs de genesis, Ale por lo general no toma precausiones extras.
El tema es, es una costumbre de los programadores C++ o ??.
Cuando sería necesario tener precausiones al llamar funciones de APIs.
 
Yo supongo que si las llamadas fallan desde ST no pasa nada, es decir solo se habre el debug y todo sigue andando.
Por otra parte  en C++ las cosas no son así y los errores no chequeados pueden hacer caer el sistema con mayor facilidad.
 
Estoy muy errado ?
 
saludos kiko



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/


#16875 De: kikoGregoris <kikogregoris@...>
Fecha: Jue, 4 de Dic, 2008 1:11 pm
Asunto: Programación a la defenciva !!
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Gente
 
Estoy usando Jet3D en un intento de aplicación. jajja.
El tema es que encuentro cosas como estas:
 
Level * Level_CreateFromFile( jeVFile * pF, jeWorld * pWorld, MaterialList_Struct * pGlobalMaterials, jePtrMgr * pPtrMgr,
float Version )
{
int32 nVersion ;
Level * pLevel ;
 
assert( jeVFile_IsValid( pF ) ) ;
assert( pWorld != NULL ) ;
assert( pGlobalMaterials != NULL ) ;
 
pLevel = JE_RAM_ALLOCATE_STRUCT( Level ) ;
if( pLevel == NULL )
goto LCFF_FAILURE ;
 
memset( pLevel, 0,
sizeof *pLevel ) ;
assert( (pLevel->nSignature = SIGNATURE) == SIGNATURE ) ;
// ASSIGN
 
pLevel->SelType = LEVEL_SELNONE ;
if( !jeVFile_Read( pF, &nVersion, sizeof nVersion ) )
return NULL;
 
if( nVersion != LEVEL_VERSION )
{
jeErrorLog_AddString(JE_ERR_FILEIO_READ, "Level_CreateFromFile Version.\n", NULL);
return NULL;
}
if( !Level_InitWorldData( pLevel, pWorld, pGlobalMaterials ) )
goto LCFF_FAILURE ;
Level_InitDefaultFace( pLevel );
 
if( !Level_LoadLists( pLevel, pF, pPtrMgr ) )
goto LCFF_FAILURE ;
 
if( !Level_LoadPrefs( pLevel, pF, Version ) )
goto LCFF_FAILURE ;
 
pLevel->pUndo = Undo_Create( LEVEL_DEFAULTUNDODEPTH ) ;
if( pLevel->pUndo == NULL )
goto LCFF_FAILURE ;
Level_InitUndoFunctions( pLevel );
return( pLevel );
 
LCFF_FAILURE :
if( pLevel != NULL )
Level_Destroy( &pLevel ) ;
jeErrorLog_AddString(JE_ERR_FILEIO_READ, "Level_CreateFromFile.\n", NULL);
return NULL ;
}
 
 
Como pueden ver, esta plagado de assert e if. Por otro lado en el código ST que tengo de referencía(el de ALe en Genesis3D) no encuentro nada de esto.
En los accesos a APIs de genesis, Ale por lo general no toma precausiones extras.
El tema es, es una costumbre de los programadores C++ o ??.
Cuando sería necesario tener precausiones al llamar funciones de APIs.
 
Yo supongo que si las llamadas fallan desde ST no pasa nada, es decir solo se habre el debug y todo sigue andando.
Por otra parte  en C++ las cosas no son así y los errores no chequeados pueden hacer caer el sistema con mayor facilidad.
 
Estoy muy errado ?
 
saludos kiko



Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

#16874 De: kikoGregoris <kikogregoris@...>
Fecha: Mar, 2 de Dic, 2008 1:10 pm
Asunto: Re: [objetos] Próxima reunión
kikogregoris
Sin conexión Sin conexión
Enviar correo Enviar correo
 
Hola Angel
 
Completamente de acuerdo con vos.
 
Lo que digo es, que si pretendemos que alguien o en este caso particular Ale, explique que es Smalltalk en 3 horas desde su visión particular y todos queden felices y contentos. Considero que no es posible, por mas claro que intente ser y por mas ejemplos que muestre.
 
Por que ?.
 
Audiencia heterogénea, la mayoría viene desde otro ámbito y perspectiva, sobre que es un sistema  y como se construye. 
La mayoría no considera que pueda haber otra forma de hacer sistemas, sobre todo los universitarios.
La mayoría no conoce los temas que se discuten aquí.
 
Ejemplo de esto son los paper que cuelgan de smalltalking. Te propongo un desafio,  toma cualquier paper de los del sitio y trata  de discutirlos con algún colega universitario.
En mi carrera, me ha tocado tener muchos profes y compañeros,  te puedo asegurar que no los conocen y tampoco les interesa.
Para ellos la unica manera de hacer un sistema es como se lo explicaron en la facultad y cuando intentas hablar de otras formas te miran raro. Lo curioso, es que en la practica muy pocos aplican lo aprendido en la facu.
Para ellos hacer un sistema con java, c++ o ST es lo mismo y como St no vende eligen otras alternativas.
 
No digo que no haya que hacer nada, solo que no hay que tratar de conformar a todos.
Se puede mejorar la presentación de Ale ?, seguro que si.
Como ? uhmm!! .
Tal vez haciendola en dos etapas, mañana y tarde. Tener mas tiempo permite explicar, mostrar ejemplos  e interactuar con el publico punto por punto.
Esto creo que no es un gran aporte jajja, pero bue.
Sugerencias ?
 
saludos kiko
 
 

--- El dom 30-nov-08, Angel "Java" Lopez <ajlopez@...> escribió:
De: Angel "Java" Lopez <ajlopez@...>
Asunto: Re: [objetos] Próxima reunión
Para: smalltalking@...
Fecha: domingo, 30 de noviembre de 2008, 7:55 pm

Hola gente!
 
Yo veo que una buena explicacion, ejemplos, un discurso bien desarrollado, sirven para explicar algo relacionado con conocimiento y conceptos. Por supuesto, en varios temas, conviene la practica.
 
Gregoris, tendras algun ejemplo en que no basta lo claro para entender algun conocimiento o concepto?
 
Nos leemos!
 
Angel "Java" Lopez
http://www.ajlopez. com/
 

Hola Ale

Tanto tiempo!!.

Ok. Solo preguntaba para ver si las preguntas eran mala leche o solo parte de la ignorancia de quien pregunta sin entender mucho de lo que se trata el tema.

Hace un tiempo, yo pedía algunos ejemplos sobre un tema que no recuerdo. Hoy pienso que no bastan los ejemplos y una buena explicación, sino base e interés por interiorizarse sobre el tema que se esta tratando, lo cual implica hacer algo en la practica.

Sino no se puede.

Yo asistí a 2 eventos, el primero no entendí nada y el segundo 5% para ser justo, pero yo estaba interesado en algo, los VIDEOGAMES ¡!!.

Desde el principio de mi carrera he estado interesado en esto y asistí porque vos estabas en el tema.

Recuerdo muy bien, la pecera y un actor en una patineta que mostraste en  VS y fue todo lo que necesite para continuar en el tema, luego vinieron los temas relacionados sobre la construcción de sistemas en ST y sus ventajas

La gente habitualmente quiere la cosas clara, como si bastara para entender. Hace tiempo que estoy con ST y aun hoy estoy muy lejos de comprender que es ST y que implica usarlo como se sugiere en Smalltalking.

En definitiva a la gente en general no hay nada que le venga bien, pero si hay algo seguro, prefieren el marketing, los espejitos de colores que vende MS y Sun.

Recuerdo la cantidad de publico que asistió a la charla de java y .net y el interes por parte de los organizadores por captar publico, cosa que no sucedió cuando se realizo la charla de smalltalking en junin UNNOBA no hace mucho.

Saludos kiko
 




Yahoo! Cocina
Recetas prácticas y comida saludable
Visitá http://ar.mujer.yahoo.com/cocina/

Mensajes 16874 - 16903 de 17190   Más reciente  |  < Más reciente  |  Más antiguo >  |  Más antiguo
Avanzado

Copyright © 2009 Yahoo! de Argentina S.R.L. Todos los derechos reservados.
Política de privacidad - Condiciones del Servicio - Reglas de la comunidad de Yahoo! - Ayuda