Ответ: FAQ
Я понимаю английский язык, не понятно, что такое "graphics object" и "graphics command" .. и вообще смысла не понятно в использовании "минусового значения"..
|
Ответ: FAQ
Цитата:
Это правда из справки Blitz3D, но по смыслу аналогично: Команда Flip меняет местами FrontBuffer() и BackBuffer(). Эта команда должна применяться, когда Вы используете двойную буферизацию. Двойная буферизация - методика, используемая, чтобы гарантировать, что обновления экрана не заметны для пользователя. Если Вы выводите изображение непосредственно в FrontBuffer, на экране могут появляться неприятные эффекты, поскольку обновления происходят непосредственно на экране. Если Вы выводите графику в BackBuffer, обновления происходят в памяти. Когда происходит обмен буферов, BackBuffer превращается в FrontBuffer и, следовательно, обновление на экране происходит практически мгновенно. В то же самое время, FrontBuffer становится BackBuffer-ом, позволяя Вам снова рисовать в BackBuffer-е следующий кадре до следующего "переворота" буферов. Параметр vwait определяет, будет ли видеоплата ждать пробела по вертикали перед обменом буферов. Пробел по вертикали - событие, которое происходит в процессе регенерации изображения на экране монитора, и соответствует моменту времени, когда последняя (нижняя) линия развертки экрана была отображена, а первая (верхняя) линия еще не выводится. Когда программа ждет пробела по вертикали, то гарантируется гладкое обновление экрана, поскольку изображение, выводимое монитором изменится только тогда, когда оно полностью занимает весь экран, и он должен начать обновление. Заметьте, однако, что это относится только к видеоплате, и некоторые видеоплаты позволяют пользователю отключать синхронизацию по вертикали. Поэтому, если Вы полагаетесь только на одну команду Flip, изображение может быть нарушено при определенных настройках. В этом случае Вам может быть полезна команда VWait, поскольку она вынуждает центральный процессор ждать пробела по вертикали (в противоположность видеоплате), и это не может быть заблокировано. Следовательно, действительно плавные обновления экрана могут быть достигнуты при использовании сочетания "VWait: Flip False". P.S. Предупреждаю, я мог и напутать всё! |
Ответ: FAQ
так "по-хорошему" нужна вертикальная синхронизация? дело в том, что когда ее использую, то получается слишком медленно и даже изображение не поспевает за координатами мыши, а если не использую, то изображения "дрожат", "рвутся"..
|
Ответ: FAQ
Цитата:
И не забывай, я смотрю со стороны Блица! |
Ответ: FAQ
Пусть тогда ответит тот, кто знает. Ведь эта ветка форума предназначена именно для предоставления ответов, касающихся BlitzMax'а.
|
Ответ: FAQ
Цитата:
|
Ответ: FAQ
Хотел спросить, есть ли разница между:
Код:
global obj1:TType = new TType PHP код:
|
Ответ: FAQ
Давай читать код вместе,
"глобальная переменная obj1 типа TType равна новому экземпляру класса TType глобальная переменная obj2 типа TType равна переменной obj1" что из этого следует? Что мы создали две глобальных переменных, в одну поместили объект, вторую сделали псевдонимом первой. Т.е. в сухом остатке у нас 1 объект и две переменных по которым его можно получить. Второй код: "глобальная переменная obj1 типа TType равна новому экземпляру класса TType глобальная переменная obj2 типа TType равна новому экземпляру класса TType переприсвоить значение переменной obj2 на значение переменной obj1" Как результат создано два разных объекта и сохранены в разных переменных. Потом одна из переменных переприсвоена на первый объект. Т.е. тот объект что был в ней теперь недоступен, и скорее всего будет уничтожен (сборщик мусора вроде бы умеет их находить). |
Ответ: FAQ
Т.е. в обоих случаях будет два указателя и один объект (сегмент памяти)?
Еще вопрос: что такое "отражение" и зачем оно нужно. Читал в описании, но еще больше запутался. Не увидел выгоды применения этого подхода. Объясните на простом маленьком примере (можно с кодом). |
Ответ: FAQ
З.Ы. проверить настигает ли объект неминуемый конец от лап
|
Ответ: FAQ
Цитата:
Для создания копий надо писать уже метод клонирования. Цитата:
псевдокод: Local obj:MyType = Reflection.GetVar("SelectedObject") ну и где то в коде есть переменная с таким именем. Вопщем это как получение объектов в TMap по ключу. |
Ответ: FAQ
Какой программный интерфейс использует BlitzMax по умолчанию (OpenGL или DirectX) и как узнать/переключиться между ними? В описании идет речь о "графическом объекте", т.е. это и есть один из графических интерфейсов?
|
Ответ: FAQ
Для винды по дефолту ставится ДХ, для остальных ОГЛ.
Для выбора конкретного драйвера (на данный момент их 4) есть функция Код:
Function SetGraphicsDriver( driver:TGraphicsDriver,defaultFlags=GRAPHICS_BACKBUFFER ) Вообще полезно прочитать полное описание модуля BRL.Graphics (а ещё лучше всех модулей). |
Ответ: FAQ
Да и, вроде если подключить brl.glmax2d, то будет openGL.
Если подключить brl.d3d%7 или 9%max2d, то будет DirectX%7 или 9%. Если brl.max2d, то подключит в соответствии с операционной системой(DirectX под виндами, OpenGL в линухе и маке) |
Ответ: FAQ
Установка драйвера в соответствии с ОС происходит при запуске исполняемого файла (готовой игры) или определяется уже при компиляции (т.е. зависит от того, в какой системе создавалась игра)?
|
Часовой пояс GMT +4, время: 02:13. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot