Конференция "Игры" » Нужна помощь [Delphi]
 
  • max_ (31.08.07 20:16) [0]
    Всем привет.
    И снова проблемы с текстурами - ошибка происходит при создании новой текстуры:
    Device.CreateTexture(Bitmap.Width, Bitmap.Height, 0, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, Texture);

    , если текстура не 256х256, что за нафиг, пытался загрузить текстуру размерами 144х192 - и нифига, только изм. размеры на 256х256 и все заработало, ПОЧЕМУ...

    Еще вопрос связ. с динаммическими массивами, есть массив типа
    arr:array of integer

    , передаю через параметры в подпрограмму -
    function arrsetlength (var dynarr:array of Integer)

    - вроде все ок, но если я пытаюсь изменить размер массива -
    setlength(dynarr, 10)

    - нифига, почему? что не так?

    пробовал делать так:
    function myfunc (var dynarr) :integer;
    var myarr:array of Integer absolute dynarr;
    begin
     setlength(myarr, 10); .....
    end;


    это правильно, тут тоже ошибки возникают, при заполнении массива данными.

    Спасибо.
  • ANTPro © (31.08.07 21:39) [1]
    > [0] max_   (31.08.07 20:16)
    > если текстура не 256х256, что за нафиг, пытался загрузить
    > текстуру размерами 144х192 - и нифига, только изм. размеры
    > на 256х256 и все заработало, ПОЧЕМУ...

    Размеры текстуры должны быть кратны 8?


    //Так имхо правильней
    type Tarrint=array of Integer;

    function myfunc (var dynarr:Tarrint):integer;
    begin
     setlength(myarr, 10);
    .....
    end;

  • max_ (01.09.07 00:34) [2]

    > Размеры текстуры должны быть кратны 8?

    не - 2
  • Мистер Т (01.09.07 10:39) [3]
    > > Размеры текстуры должны быть кратны 8?
    >
    > не - 2

    144 - это кратность 2 ???
  • max_ (01.09.07 18:05) [4]

    > 144 - это кратность 2 ???

    а разве нет???
  • ggg (01.09.07 21:52) [5]
    >> 144 - это кратность 2 ???

    >а разве нет???

    Не кратны 2 или 8. Размер текстуры - степень двойки.

    2^n = 144
    n = Log(144, 2) = 16,5093624262064

    Если 16,5 - это целое число, тогда мы затрудняемся ответить на ваш вопрос.
  • ggg (01.09.07 21:54) [6]

    > n = Log(144, 2) = 16,5093624262064

    Точнее 7,16992500144231 :) Остальное всё так же.
  • max_ (04.09.07 11:25) [7]
    ух, тогда сорри, спасибо.
 
Конференция "Игры" » Нужна помощь [Delphi]
Есть новые Нет новых   [134431   +10][b:0][p:0.001]