| Poster | : xterminal | | Posts | : 1 | | Country | : USA | | City | : Cleveland |
| | | | Posted by xterminal on 31/08/2006 at 10:28:07
| | I got an out of range error when working with the second index buffer. Which does make sense, since (WIDTH-1) * (HEIGHT-1) * 6 = 36, while the FOR loop will iterate up to 41.
Changing the declaration to WIDTH * HEIGHT obviously works, but it doesn't look right somehow.
Did I miss something important when switching everything over to 6?
<pre>ib = new IndexBuffer(typeof(short), (WIDTH) * (HEIGHT) * 6, device, Usage.WriteOnly, Pool.Default);
indices = new short[(WIDTH) * (HEIGHT) * 6];
for (int x = 0; x WIDTH - 1; x++)
{
for (int y = 0; y HEIGHT - 1; y++)
{
indices[(x + y * (WIDTH - 1)) * 6] = (short)((x + 1) + (y + 1) * WIDTH);
indices[(x + y * (WIDTH - 1)) * 6 + 1] = (short)((x + 1) + y * WIDTH);
indices[(x + y * (WIDTH - 1)) * 6 + 2] = (short)(x + y * WIDTH);
indices[(x + y * (WIDTH - 1)) * 6 + 3] = (short)((x + 1) + (y + 1) * WIDTH);
indices[(x + y * (WIDTH - 1)) * 6 + 4] = (short)(x + y * WIDTH);
indices[(x + y * (WIDTH - 1)) * 6 + 5] = (short)(x + (y + 1) * WIDTH);
}
}
ib.SetData(indices, 0, LockFlags.None);</pre>
(Left it as WIDTH * HEIGHT rather than changing it back here because I'm lazy.) | |
|
|
| |
| |
| Poster | : riemer | | Posts | : 1392 | | Country | : Belgium | | City | : Antwerp |
| | | | Posted by riemer on 31/08/2006 at 14:50:45
| | hmmm in the case of WIDTH=4 and HEIGHT=3, you indeed initialise your buffers to 36 spaces.
The maximum index in your for loop:
(x + y * (WIDTH - 1)) * 6 + 5
or
(2 + 1 * (4 - 1)) * 6 + 5 = 35
which fits nicely in the buffer. | |
|
|
| |
| |
| Poster | : Anonymous | | Posts | : | | Country | : | | City | : |
| | | | Posted by Anonymous on 03/04/2007 at 07:07:25
| | I had the same problem, but still using the 3 instead of 6. I fixed it by using
For x = 0 To terWidth - 2
For y = 0 To terHeight - 2
(using VB.net) | |
|
|
| |
| |
| Poster | : Anonymous | | Posts | : | | Country | : | | City | : |
| | | | Posted by Anonymous on 03/11/2012 at 06:18:00
| | | HI!!!! YOU! I know you maybe have 10. I know far weep 2 and crysis can't run you DX10 baceuse I reckon your record card is ancient. I guess your record card is 9.0c . Few record games must run on record games. | |
|
|