Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





DrawIndexedPrimitive() netbook y sobremesa

Iniciado por Manu343726, 13 de Febrero de 2013, 11:53:45 PM

« anterior - próximo »

Manu343726

Buenas

Sigo peleándome con direct3d9.

El caso es que tengo implementada la función DRAW_Trapezoid() de dx_lib32 mediante indexbuffers, para empaquetar todas las llamadas encadenadas en una sola llamada a drawindexedprimitive. En el sobremesa funciona perfectamente, pero cuando lo pruebo en el netbook me salta un bufffer overflow en la llamada a drawindexedprimitive().

Alguna idea?

[EX3]

Según recordaba, hay un limite de indices que puedes mandar en una llamada, y efectivamente lo indica la documentación de la función:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb174369(v=vs.85).aspx

CitarThe maximum number of primitives allowed is determined by checking the MaxPrimitiveCount member of the D3DCAPS9 structure.

O bien aplicas un limite valido para cualquier maquina, igual que se hace con el tamaño máximo de textura, o bien trabajas acorde con el limite impuesto por el hardware. Yo optaría por el primero, tomando como limite el más bajo, el de la gráfica integrada del netbook, más que nada por asegurar la misma compatibilidad de ejecución entre distintas maquinas.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Manu343726

La verdad es que nunca se mehabria ocurrido que pudiera ser eso. Suponía que hoy en día esa limitación sería bastante alta... Yo estoy haciendo llamadas de 1000-6000 vértices

Manu343726

He estado probando y tampoco es eso, con llamadas de 500 vertices también peta.
He estado mirando si era que la declaracion de los buffers estaba mal, pero parece correcto. Ya no se que puede ser....

En concreto, ésto es lo que me suelta:


Y en cambio en el sobremesa, funciona perfectamente:






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.