-
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;
это правильно, тут тоже ошибки возникают, при заполнении массива данными.
Спасибо. -
> [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]ух, тогда сорри, спасибо.