![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Передача поверхности в процедуру ... |
|
Передача поверхности в процедуру ...
|
JAGO
Сообщения: n/a |
Не сочтите вопрос за глупый, но вопросы оптимизации меня сильно волнуют, и без ответа на него, я писать продолжать просто не могу :-)
Итак - я создаю объект - TSprite, он содержит поверхность (DirectDraw), которая хранит какой-то рисунок. Поверхность создается в конструкторе объекта, а для создания этой поверхности необходимо использовать объект (интерфейс?) IDirectDraw7. Я использую глобальный объект IDirectDraw7, который находится в public у объекта главной формы (в другом юните). Такой способ не дает повторно использовать мой класс TSprite. Из этого положения есть такой выход: TSprite.Create (IDD7 : IDirectDraw7); т.е передать этот интерфейс в конструктор. Вот в таком случае, что передается: указатель на IDirectDraw7, или весь объект целиком через стек (а по моему разумению он очень большой), или что то еще ? Как сделать чтобы передавался только указатель? (Может быть так: PDirectDraw7 : ^IDirectDraw и уже его передавать?) Или есть еще какой способ создать эту поверхность внутри TSprite. Второй вопрос о том же почти. В Tsprite есть процедура, которая копирует его поверхность на первичную (PrSurface). Для такого копирования я опять же использую глобальную переменную первичной поверхности. Это опять не хорошо из-за вопросов повторного использования, а так же потому что на другую поверхность (помимо PrSurface), я скопировать не могу. Если в процедуру копирования передать PrSurface (или другую поверхность), то как лучше это сделать, чтобы были наименьшие накладные расходы. Если это делается так: TSprite.CopySurface (DestSurf : IDirectDrawSurface7); то что опять же передается: указатель, вся поверхность копируется через стек (огромный кусок памяти)?? И как лучше это сделать? |
|
Отправлено: 18:36, 13-09-2003 |
Pascal 4ever Сообщения: 48
|
Профиль | Отправить PM | Цитировать передается всегда указатель
|
Отправлено: 09:53, 14-09-2003 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] точка входа в процедуру не найдена | sneg-ura | Лечение систем от вредоносных программ | 8 | 13-12-2009 20:06 | |
VBA - Вычислить время свободного падения тела отпущенного с заданной высоты от поверхности | JaneCherry | Программирование и базы данных | 2 | 13-06-2009 21:17 | |
Разное - Прибор для измерения температуры поверхности ноутбука | TTVV | Прочее железо | 6 | 18-02-2009 16:57 | |
Восстановление даныых после стирание поверхности ? | Druz | Ноутбуки | 1 | 07-03-2008 12:38 | |
Тест поверхности CD | Poma | Программирование и базы данных | 1 | 01-12-2003 16:15 |
|