Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IDirect3DIndexBuffer9::Lock() 
:(
    Опции темы
Lightwave
Дата 17.2.2007, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.2.2007

Репутация: нет
Всего: нет



Не комп. вот такая штука. Ошибка : 0xC0000005: Access violation reading location 0x00000000.

Код


IDirect3DVertexBuffer9* _VB;
IDirect3DIndexBuffer9*  _IB;    

//Structures

typedef struct _Vertex 
{
    _Vertex(){};
    _Vertex(float x, float y, float z)
    {
        _x = x;    _y = y; _z = z;
    };
    float _x, _y, _z;    // местоположение
    DWORD _color;     // цвет
    static const DWORD FVF;
} VERTEX;
const DWORD _Vertex::FVF = D3DFVF_XYZ;

bool Setup()
{    
    g_d3device->CreateVertexBuffer(8*sizeof(VERTEX), D3DUSAGE_WRITEONLY, VERTEX::FVF, 
                                                D3DPOOL_MANAGED, &_VB, 0);
    g_d3device->CreateIndexBuffer(36*sizeof(VERTEX), D3DUSAGE_WRITEONLY, D3DFMT_D16, 
                                            D3DPOOL_MANAGED, &_IB, 0);
    VERTEX*    Vertices = NULL;

    _VB->Lock(0, sizeof(VERTEX), (void**) &Vertices, 0);

    Vertices[0] = VERTEX(-1.0f, -1.0f, -1.0f);
    Vertices[1] = VERTEX(-1.0f,  1.0f, -1.0f);
    Vertices[2] = VERTEX( 1.0f,  1.0f, -1.0f);
    Vertices[3] = VERTEX( 1.0f, -1.0f, -1.0f);
    Vertices[4] = VERTEX(-1.0f, -1.0f,  1.0f);
    Vertices[5] = VERTEX(-1.0f,  1.0f,  1.0f);
    Vertices[6] = VERTEX( 1.0f,  1.0f,  1.0f);
    Vertices[7] = VERTEX( 1.0f, -1.0f,  1.0f);

    _VB->Unlock();
    
    WORD* Indeces = NULL;

    _IB->Lock(0, 0,(void**) &Indeces,D3DLOCK_READONLY); //На этом месте всё и заканчивается 0xC0000005: Access violation reading location 0x00000000.

    // передняя грань
    Indeces[0]  = 0; Indeces[1]  = 1; Indeces[2]  = 2;
    Indeces[3]  = 0; Indeces[4]  = 2; Indeces[5]  = 3;

    // задняя грань
    Indeces[6]  = 4; Indeces[7]  = 6; Indeces[8]  = 5;
    Indeces[9]  = 4; Indeces[10] = 7; Indeces[11] = 6;

    // левая грань
    Indeces[12] = 4; Indeces[13] = 5; Indeces[14] = 1;
    Indeces[15] = 4; Indeces[16] = 1; Indeces[17] = 0;

    // правая грань
    Indeces[18] = 3; Indeces[19] = 2; Indeces[20] = 6;
    Indeces[21] = 3; Indeces[22] = 6; Indeces[23] = 7;

    // верх
    Indeces[24] = 1; Indeces[25] = 5; Indeces[26] = 6;
    Indeces[27] = 1; Indeces[28] = 6; Indeces[29] = 2;

    // низ
    Indeces[30] = 4; Indeces[31] = 0; Indeces[32] = 3;
    Indeces[33] = 4; Indeces[34] = 3; Indeces[35] = 7;

    _IB->Unlock();
    
    D3DXVECTOR3     position(0, 0, -5);
    D3DXVECTOR3    target(0, 0, 0);
    D3DXVECTOR3     up(0, 1, 0);
    D3DXMATRIX      v;

    D3DXMatrixLookAtLH(&v, &position, &target, &up);
    g_d3device->SetTransform(D3DTS_VIEW, &v);

    D3DXMATRIX    project;
    D3DXMatrixPerspectiveFovLH(&project, D3DX_PI * 0.5f, (FLOAT)WINDOW_WIDTH/(FLOAT)WINDOW_HEIGHT,
                                                1, 1000);
    g_d3device->SetTransform(D3DTS_PROJECTION, &project);
    g_d3device->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);

    return TRUE;
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.1057 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.