Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];

Вниз

Помогите из 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.013 c
4-1156987026
supervk
2006-08-31 05:17
2007.01.14
разделение общего ресурса на несколько потоков


1-1163789132
SkySpeed
2006-11-17 21:45
2007.01.14
Как распечатать, используя Delphi файл?


11-1143587172
Fantasy
2006-03-29 03:06
2007.01.14
Служба


2-1166887620
BanserAnt
2006-12-23 18:27
2007.01.14
Кто в чате?


8-1148280272
Тфьу
2006-05-22 10:44
2007.01.14
Проблема с загрузкой JPG. Грузится неверно.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский