Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

Помогите из DWORD а получить Single   Найти похожие ветки 

 
ProgRAMmer Dimonych ©   (2006-12-22 20:53) [0]

Сел тут поизучать книжку одну: "DirectX графика в проектах Delphi" (Краснов). Идёт там, значит, описание GetRenderState и SetRenderState у IDIRECT3DDEVICE8. Написано, что в SetRenderState в виде DWORD-значения передаётся Single-число таким способом: PDWORD(@PointSize)^, где PointSize:Single. А как из GetRenderState"ом полученного DWORD"а сделать обратно Single? И есть ли вообще какой-нибудь общий подход к разгадыванию таких загадок (т.е. как можно получать последовательность преобразований, обратную данной в общем случае)?

P.S. В очередной раз убедился, что по части всех преобразований и приведений типов я полный нуль :(


 
ors_archangel ©   (2006-12-22 21:10) [1]

PSingle(@DwordValue)^ ?
Алгоритм получения обратных преобразований заключается в замене всех приведений к типу A, или ^A на B или ^B и наоборот.

> полный нуль

На самом деле это очень извращённая форма приведения типов: сначала берём адрес переменной любого типа, потом приводим его к типизированному указателю (PSingle), затем операция разымёнывания даёт значение укзателя, теперь уже типа single. Видимо, необходим ещё механизм принудительного приведения типов, чтобы можно было писать, например s := force Single(d), где force - какое-то ключевое слово, это было бы намного понятней. (Вообще, запись s := d допустима, но она делает fild, fstp - т.е. округление)


 
Ученик чародея ©   (2006-12-22 21:19) [2]

var numS:single;
var numDW:DWord;

 NumS:=(PSingle(@NumDW))^;


 
Ученик чародея ©   (2006-12-22 21:20) [3]

А вообще указатели и рекурсия - зло, так как путь к потенциальным глюкам.


 
ors_archangel ©   (2006-12-22 21:26) [4]

Рекурсия - естественна


 
wicked ©   (2006-12-22 21:30) [5]

> Ученик чародея ©   (22.12.06 21:20) [3]

> А вообще указатели и рекурсия - зло, так как путь к потенциальным
> глюкам.

гггг... бриться - зло, так как путь к потенциальным порезам

> ors_archangel ©   (22.12.06 21:26) [4]

> Рекурсия - естественна

указатели - тоже...


 
Gero ©   (2006-12-22 21:31) [6]

> [3] Ученик чародея ©   (22.12.06 21:20)

Программирование — зло.


 
ProgRAMmer Dimonych ©   (2006-12-22 21:35) [7]

> Gero ©   (22.12.06 21:31) [6]
> Программирование — зло.
А это высказывание - ересь :)


 
ProgRAMmer Dimonych ©   (2006-12-22 21:41) [8]

Блин, люди, создал новый проект, кинул на форму три Edit"а и кнопку. В обработчике клика по кнопке написал перевод StrToCurr(Edit1.Text) в DWORD и обратно с забрасыванием результата и промежуточного DWORD"а в соответствующие Edit"ы. В DWORD"е ещё покруче ересь, оказывается. Извращенцы в Microsoft"е, однако. Такую фигню в DirectX засунули!!!


 
Loginov Dmitry ©   (2006-12-22 23:15) [9]

> DirectX графика в проектах Delphi" (Краснов).


Одна только фамилия автора заставляет призадуматься над ценностью данной литературы.


 
Gero ©   (2006-12-22 23:36) [10]

> [9] Loginov Dmitry ©   (22.12.06 23:15)

А это что, родственник Фленова?


 
Loginov Dmitry ©   (2006-12-22 23:39) [11]

Возможно. Дальний.


 
Loginov Dmitry ©   (2006-12-22 23:43) [12]

Вспомнилось одно рассуждение Краснова из программирования OpenGL в Дельфи, насчет того, что Null не пашен. В Windows SDK сказали, что в функцию можно передать Null, а Delphi ругается, типа Can not convert variant... Оказывается, Дельфи глючит :) Таких мест в книге - большое количество, и читать ее составило большое удовольствие :))



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.041 c
15-1166985313
sinus
2006-12-24 21:35
2007.01.14
Ищу компонент...


15-1166978969
dzmitry[li]
2006-12-24 19:49
2007.01.14
5.1


2-1166622346
dreamse
2006-12-20 16:45
2007.01.14
Непонятное что то с поддежкой ICO


6-1155523736
AlexaSP
2006-08-14 06:48
2007.01.14
Блокировка ARP-ответов в Windows XP


2-1166780478
kukuikar
2006-12-22 12:41
2007.01.14
Изменение даты создания файла