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

Вниз

Передача поверхности в процедуру ...   Найти похожие ветки 

 
Sp@wN ©   (2003-09-13 19:05) [0]

Не сочтите вопрос за глупый, но вопросы оптимизации меня сильно волнуют, и без ответа на него, я писать продолжать просто не могу :-)

Итак - я создаю объект - TSprite, он содержит поверхность (DirectDraw), которая хранит какой-то рисунок. Поверхность создается в конструкторе объекта, а для создания этой поверхности необходимо использовать объект (интерфейс?) IDirectDraw7. Я использую глобальный объект IDirectDraw7, который находится в public у объекта главной формы (в другом юните). Такой способ не дает повторно использовать мой класс TSprite. Из этого положения есть такой выход: TSprite.Create (IDD7 : IDirectDraw7); т.е передать этот интерфейс в конструктор. Вот в таком случае, что передается: указатель на IDirectDraw7, или весь объект целиком через стек (а по моему разумению он очень большой), или что то еще ? Как сделать чтобы передавался только указатель? (Может быть так: PDirectDraw7 : ^IDirectDraw и уже его передавать?) Или есть еще какой способ создать эту поверхность внутри TSprite.

Второй вопрос о том же почти. В Tsprite есть процедура, которая копирует его поверхность на первичную (PrSurface). Для такого копирования я опять же использую глобальную переменную первичной поверхности. Это опять не хорошо из-за вопросов повторного использования, а так же потому что на другую поверхность (помимо PrSurface), я скопировать не могу. Если в процедуру копирования передать PrSurface (или другую поверхность), то как лучше это сделать, чтобы были наименьшие накладные расходы. Если это делается так: TSprite.CopySurface (DestSurf : IDirectDrawSurface7); то что опять же передается: указатель, вся поверхность копируется через стек (огромный кусок памяти)?? И как лучше это сделать?


 
cyborg ©   (2003-09-13 19:51) [1]

Не беспокойся, это указатель передаётся.



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

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

Наверх




Память: 0.47 MB
Время: 0.042 c
1-1079597785
don-do
2004-03-18 11:16
2004.04.04
Кто поможет, как вкомпилить в программу имя компьютера


3-1078676634
Volodya_
2004-03-07 19:23
2004.04.04
Filter


14-1078429319
zzet
2004-03-04 22:41
2004.04.04
Помогите в борьбе со спамом


14-1078853581
DDA
2004-03-09 20:33
2004.04.04
Нужны тестеры


6-1075372373
Скив
2004-01-29 13:32
2004.04.04
embeddedwb