FillChar, (не смешно)
столкнулся с проблемой.
процедура FillChar в си толи начисто отсутствует, толи еще что.
пытался эмулировать
char *p;
p = (char*)&pfd;
for(int i = 0;i < sizeof(TPixelFormatDescriptor);i++)
{
(char)(*( p + i )) = 0;
}
не работает, вернее работает но как-то криво
формат пикселя получается не такой как надо, экран идет разноцветными прямоугольниками
приведу всю процедуру
void SetDCPixelFormat (HDC hdc)
{
TPixelFormatDescriptor pfd;
char *p;
p = (char*)&pfd;
for(int i = 0;i < sizeof(TPixelFormatDescriptor);i++)
{
(char)(*( p + i )) = 0;
}
pfd.dwFlags = PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER;
int nPixelFormat = ChoosePixelFormat (hdc, &pfd);
SetPixelFormat(hdc, nPixelFormat, &pfd);
}
Цитата:
Originally posted by Dr.Wisdom
процедура FillChar в си толи начисто отсутствует, толи еще что.
процедура FillChar в си толи начисто отсутствует, толи еще что.
А что-то вроде ZeroMemory?
Цитата:
Originally posted by Freeman
А что-то вроде ZeroMemory?
А что-то вроде ZeroMemory?
Тогда уж вроде memset...
Нифига!
Видать дело не в этом.
Скажите, или лучьше приведите пример кода программы OpenGl, выводящей на экран, можно с использованием VCL, пару линий, неважно чего.
Глючит, не могу.
А еше прикол был: запускаю Delphi с точным аналогом программы. Работает. Открываю Си, работает. Изменяю чуть чуть программу, программа не изменяется! Код изменен, а результата нет. Тоесть результат не соответствует коду!!!!!
Изменяю код в Делфи, компилирую Си, и результат соответствует коду Делфи.
Это от недосыпания глюки да?
Наверное ты перешёл на новый уровень интуитивного восприятия и скомпилировал прогу в голове =)
Я понял что это. Это связанно с буферами. Почему-то у меня не идет отображение в нужный буфер, и когда я меняю их то отображается старая область памяти, содержащая мусор ( по абсолютной идентичности программ - буфер от программы в Делфи).