#131116 - Chikungun - Mon Jun 11, 2007 9:36 am
Hi Jhiant, thanks for your reply, actually I did manage to do it but was too busy to post, now is the time to do so. Here is the display list for a cube using quads and it works (I had trouble with counting the offset, and with FIFO_NOP s) Actually beware of the positions of the vertices because I do update them in my game-loop so it may not be the right initialization (too lazy to bother as I update it before the first frame, sorry) but the important is the displaylist in itself, so I'll post it anyway:
u32 cubebase[] =
{
/*0*/ 108,
// face 1/6
// ... quad
/* 1*/ FIFO_COMMAND_PACK(FIFO_BEGIN, FIFO_NORMAL, FIFO_VERTEX16, FIFO_NORMAL),
/* 2*/ GL_QUAD,
/* 3*/ NORMAL_PACK( 0, 0, floattov10(-1.0)),
/* 4*/ VERTEX_PACK(inttov16(-1),inttov16(-1)),
/* 5*/ VERTEX_PACK(0,0),
/* 6*/ NORMAL_PACK( 0, 0, floattov10(-1.0)),
/* 7*/ FIFO_COMMAND_PACK(FIFO_VERTEX16, FIFO_NORMAL, FIFO_VERTEX16, FIFO_NORMAL),
/* 8*/ VERTEX_PACK(inttov16(1),inttov16(-1)),
/* 9*/ VERTEX_PACK(0,0),
/*10*/ NORMAL_PACK( 0, 0, floattov10(-1.0)),
/*11*/ VERTEX_PACK(inttov16(-1),inttov16(1)),
/*12*/ VERTEX_PACK(0,0),
/*13*/ NORMAL_PACK( 0, 0, floattov10(-1.0)),
/*14*/ FIFO_COMMAND_PACK(FIFO_VERTEX16, FIFO_NOP, FIFO_NOP, FIFO_END),
/*15*/ VERTEX_PACK(inttov16(-1),inttov16(1)),
/*16*/ VERTEX_PACK(0,0),
/*17*/ 0,
/*18*/ 0,
// face 2/6
// ... quad
/*19*/ FIFO_COMMAND_PACK(FIFO_BEGIN, FIFO_NORMAL, FIFO_VERTEX16, FIFO_NORMAL),
/*20*/ GL_QUAD,
/*21*/ NORMAL_PACK( 0, 0, floattov10(1.0) -1),
/*22*/ VERTEX_PACK(inttov16(-1),inttov16(-1)),
/*23*/ VERTEX_PACK(0,0),
/*24*/ NORMAL_PACK( 0, 0, floattov10(1.0) -1),
/*25*/ FIFO_COMMAND_PACK(FIFO_VERTEX16, FIFO_NORMAL, FIFO_VERTEX16, FIFO_NORMAL),
/*26*/ VERTEX_PACK(inttov16(1),inttov16(-1)),
/*27*/ VERTEX_PACK(0,0),
/*28*/ NORMAL_PACK( 0, 0, floattov10(1.0) -1),
/*29*/ VERTEX_PACK(inttov16(-1),inttov16(1)),
/*30*/ VERTEX_PACK(0,0),
/*31*/ NORMAL_PACK( 0, 0, floattov10(1.0) -1),
/*32*/ FIFO_COMMAND_PACK(FIFO_VERTEX16, FIFO_NOP, FIFO_NOP, FIFO_END),
/*33*/ VERTEX_PACK(inttov16(-1),inttov16(1)),
/*34*/ VERTEX_PACK(0,0),
/*35*/ 0,
/*36*/ 0,
// face 3/6
// ... quad
/*37*/ FIFO_COMMAND_PACK(FIFO_BEGIN, FIFO_NORMAL, FIFO_VERTEX16, FIFO_NORMAL),
/*38*/ GL_QUAD,
/*39*/ NORMAL_PACK( 0, floattov10(1.0) -1, 0),
/*40*/ VERTEX_PACK(inttov16(-1),inttov16(-1)),
/*41*/ VERTEX_PACK(0,0),
/*42*/ NORMAL_PACK( 0, floattov10(1.0) -1, 0),
/*43*/ FIFO_COMMAND_PACK(FIFO_VERTEX16, FIFO_NORMAL, FIFO_VERTEX16, FIFO_NORMAL),
/*44*/ VERTEX_PACK(inttov16(1),inttov16(-1)),
/*45*/ VERTEX_PACK(0,0),
/*46*/ NORMAL_PACK( 0, floattov10(1.0) -1, 0),
/*47*/ VERTEX_PACK(inttov16(-1),inttov16(1)),
/*48*/ VERTEX_PACK(0,0),
/*49*/ NORMAL_PACK( 0, floattov10(1.0) -1, 0),
/*50*/ FIFO_COMMAND_PACK(FIFO_VERTEX16, FIFO_NOP, FIFO_NOP, FIFO_END),
/*51*/ VERTEX_PACK(inttov16(-1),inttov16(1)),
/*52*/ VERTEX_PACK(0,0),
/*53*/ 0,
/*54*/ 0,
// face 4/6
// ... quad
/*55*/ FIFO_COMMAND_PACK(FIFO_BEGIN, FIFO_NORMAL, FIFO_VERTEX16, FIFO_NORMAL),
/*56*/ GL_QUAD,
/*57*/ NORMAL_PACK( 0, floattov10(-1.0), 0),
/*58*/ VERTEX_PACK(inttov16(-1),inttov16(-1)),
/*59*/ VERTEX_PACK(0,0),
/*60*/ NORMAL_PACK( 0, floattov10(-1.0), 0),
/*61*/ FIFO_COMMAND_PACK(FIFO_VERTEX16, FIFO_NORMAL, FIFO_VERTEX16, FIFO_NORMAL),
/*62*/ VERTEX_PACK(inttov16(1),inttov16(-1)),
/*63*/ VERTEX_PACK(0,0),
/*64*/ NORMAL_PACK( 0, floattov10(-1.0), 0),
/*65*/ VERTEX_PACK(inttov16(-1),inttov16(1)),
/*66*/ VERTEX_PACK(0,0),
/*67*/ NORMAL_PACK( 0, floattov10(-1.0), 0),
/*68*/ FIFO_COMMAND_PACK(FIFO_VERTEX16, FIFO_NOP, FIFO_NOP, FIFO_END),
/*69*/ VERTEX_PACK(inttov16(-1),inttov16(1)),
/*70*/ VERTEX_PACK(0,0),
/*71*/ 0,
/*72*/ 0,
// face 5/6
// ... quad
/*73*/ FIFO_COMMAND_PACK(FIFO_BEGIN, FIFO_NORMAL, FIFO_VERTEX16, FIFO_NORMAL),
/*74*/ GL_QUAD,
/*75*/ NORMAL_PACK(floattov10(1.0) -1, 0, 0),
/*76*/ VERTEX_PACK(inttov16(-1),inttov16(-1)),
/*77*/ VERTEX_PACK(0,0),
/*78*/ NORMAL_PACK(floattov10(1.0) -1, 0, 0),
/*79*/ FIFO_COMMAND_PACK(FIFO_VERTEX16, FIFO_NORMAL, FIFO_VERTEX16, FIFO_NORMAL),
/*80*/ VERTEX_PACK(inttov16(1),inttov16(-1)),
/*81*/ VERTEX_PACK(0,0),
/*82*/ NORMAL_PACK(floattov10(1.0) -1, 0, 0),
/*83*/ VERTEX_PACK(inttov16(-1),inttov16(1)),
/*84*/ VERTEX_PACK(0,0),
/*85*/ NORMAL_PACK(floattov10(1.0) -1, 0, 0),
/*86*/ FIFO_COMMAND_PACK(FIFO_VERTEX16, FIFO_NOP, FIFO_NOP, FIFO_END),
/*87*/ VERTEX_PACK(inttov16(-1),inttov16(1)),
/*88*/ VERTEX_PACK(0,0),
/*89*/ 0,
/*90*/ 0,
// face 6/6
// ... quad
/*91*/ FIFO_COMMAND_PACK(FIFO_BEGIN, FIFO_NORMAL, FIFO_VERTEX16, FIFO_NORMAL),
/*92*/ GL_QUAD,
/*93*/ NORMAL_PACK(floattov10(-1.0), 0, 0),
/*94*/ VERTEX_PACK(inttov16(-1),inttov16(-1)),
/*95*/ VERTEX_PACK(0,0),
/*96*/ NORMAL_PACK(floattov10(-1.0), 0, 0),
/*97*/ FIFO_COMMAND_PACK(FIFO_VERTEX16, FIFO_NORMAL, FIFO_VERTEX16, FIFO_NORMAL),
/*98*/ VERTEX_PACK(inttov16(1),inttov16(-1)),
/*99*/ VERTEX_PACK(0,0),
/*100*/ NORMAL_PACK(floattov10(-1.0), 0, 0),
/*101*/ VERTEX_PACK(inttov16(-1),inttov16(1)),
/*102*/ VERTEX_PACK(0,0),
/*103*/ NORMAL_PACK(floattov10(-1.0), 0, 0),
/*104*/ FIFO_COMMAND_PACK(FIFO_VERTEX16, FIFO_NOP, FIFO_NOP, FIFO_END),
/*105*/ VERTEX_PACK(inttov16(-1),inttov16(1)),
/*106*/ VERTEX_PACK(0,0),
/*107*/ 0,
/*108*/ 0,
};