Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2008, 20:26   #471
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию Быстрый способ копирования Bitmap буфера в другой...

Вроде разобрался, ...знатоки ASM'а могут помочь убрать еще лишнее, если таковое увидят. Я же поверхностно понимаю этот код, можно сказать новичок в ассемблере.
Не буду томить, вот он код копирования изображения из одного буфера в другой, при условии, что оба буфера одинакового размера:

Код:
  asm
    MOV   EAX,Scr2       //Запись в регистр указателя на источник  (Pointer)
    MOV   EDX,Scr        //Запись в регистр указателя на приемник  (Pointer)
    MOV   ECX,BufLength  //Запись в регистр размера участка данных (DWORD)

    PUSH  ESI
    PUSH  EDI

    MOV   ESI,EAX
    MOV   EDI,EDX
    MOV   EAX,ECX

    LEA   ESI,[ESI+ECX-4] // point ESI to last dword of source
    LEA   EDI,[EDI+ECX-4] // point EDI to last dword of dest

    SAR   ECX,2           // copy count DIV 4 dwords
    JS    @@exit

    STD
    REP   MOVSD

    MOV   ECX,EAX
    AND   ECX,03H         // copy count MOD 4 bytes
    ADD   ESI,4-1         // point to last byte of rest
    ADD   EDI,4-1
    REP   MOVSB
    CLD

  @@exit:
    POP   EDI
    POP   ESI
  end;
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 27.04.2008, 21:15   #472
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Хм, интересно, надо будет попробовать когда время будет.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 27.04.2008 в 21:19.
mutabor вне форума Ответить с цитированием
Старый 05.05.2008, 16:05   #473
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Задача номер 2: нужно найти начало графических данных на PaintBox, т.е. Pointer, чтобы так же изящно с помощью ASM'а "закидывать" содержимое буфера.

Кто знает, плиз помогите.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 05.05.2008, 18:01   #474
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,692
По умолчанию

возможно стоит использовать image? Тогда получится также изящно.
PaintBox обшарил сверху донизу, ничего не нашел, может что-то проглядел.
Kostia вне форума Ответить с цитированием
Старый 08.05.2008, 21:19   #475
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

А как в Image найти Pointer на данные?, ...я чет тоже плутал, ...в Graphics.pas залез, но так и не нашел.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 08.05.2008, 22:04   #476
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Beermonza, даже если ты найдешь точку входа и изподтишка что-то туда впишешь, все равно чтобы это вывелость на экран, нужно будет вызвать один из методов обновления.

[off] Да и вообще, если честно, ерундой занимаешься, ведь времени много тратишь наверное. Лучше бы DX или OGL изучал (нового узнаешь ничуть не меньше). Все равно GDI в том виде в к-ром мы привыкли уходит в прошлое, Виста уже видеокарту на полную катушку юзает. Да и проект серьезный по вашим же словам, с GDI как-то не клеится. Имхо GDI годится для интерфейса программ и максимум для "настольных" игр. [/off]
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 09.05.2008, 16:32   #477
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Ну, время не трачу, ...тут даже не GDI, API просто и ASM. Я если и перейду на DX, так только уже на D3D и 2D делать уже не буду.
Тут упоминалось, что DirectDraw быстрее справится с поставленной задачей, ...но, не в моем случае, ...четко понимаю, что все делал правильно, слабое звено - передача из OЗУ в видеопамять. D3D не для всех подходит, например, некоторые примеры с форума у меня просто не работают.
Тут есть еще цель, обойтись без видеокарты. В том виде в котором сейчас находится отображение графики устраивает вполне. Но, т.к. все хорошо мне не подходит, нужно идеально
Главное - не делать ничего лишнего, ...путь тяжелый, ...соблазн облегчить себе жизнь, но нет, ...есть цель нужно ее достичь.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 09.05.2008, 18:00   #478
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию Немного порассуждаем )

На чем бы не делать, все равно приходится использовать продукты чужого труда, я имею ввиду библиотеки. Высокоуровневые или более низкоуровневые, но все равно мы их используем. В стремлении не использовать чужие библиотеки нужно знать меру, ведь так и до машинного кода недалеко.

Какую библиотеку использовать, это конечно на любителя. У кого какие требования или просто привычка. Я бы перешел на более низкоуровневую только в том случае, если так как сделано в высокоуровневой меня не устраивает. То есть сделал бы для себя так как мне надо, но тут конечно тоже есть "критическая точка" из-за мелочи какой-то не стал бы.
Это я к тому, что если библиотека хорошая, все устраивает, особых претензий нет, почему бы ее не использовать. А если она высокоуровневая, так это даже хорошо, можно сосредоточиться на решении других задач.
Взять к примеру какой нибудь OGL движок, если я сам на чистом OGL сделаю хуже, и времени потрачу больше, очевидно что лучше заюзать движок. А если он хороший, и лучше сделать это надо еще постараться, то нет особого резона вообще изучать OGL в оригинале.
Это конечно если смотреть с сугубо практической точки зрения. Если есть спортивный интерес или желание познать суть процесса, эт канеш другое дело )
Чето меня на философию потянуло )))
Цитата:
Главное - не делать ничего лишнего, ...путь тяжелый, ...соблазн облегчить себе жизнь, но нет, ...есть цель нужно ее достичь.
Нам бы день простоять, да ночь продержаться )))
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 09.05.2008 в 18:04.
mutabor вне форума Ответить с цитированием
Старый 09.05.2008, 20:41   #479
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от mutabor
Чето меня на философию потянуло )))
Это и хорошо, ...народ устал наверное уже от "бери это, проверено!", "делай так, это лучше!" , ...хочется услышать мнение, рассуждения.

Цитата:
Сообщение от mutabor
На чем бы не делать, все равно приходится использовать продукты чужого труда, я имею ввиду библиотеки. Высокоуровневые или более низкоуровневые, но все равно мы их используем. В стремлении не использовать чужие библиотеки нужно знать меру, ведь так и до машинного кода недалеко.
Соглашусь частично. Если конкретно, то тут мы уже убедились, что стандарт проводит нас почти через все типы всевозможных команд (утрирую), понятно, что сделано для универсальности, но в некоторых случаях это мешает. Да и кто сказал, что машинный код это плохо? , ...да это сложно и непонятно для большинства, но ведь для пытливого ума это не сложность, от которой обязательно нужно уходить используя "чужой труд", а скорее способ получить драгоценный опыт и в последствии поделиться им.

"Тут это выполнить нельзя, нереально..." ...будем рушить это утверждение.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 09.05.2008, 20:56   #480
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Да и кто сказал, что машинный код это плохо? , ...да это сложно и непонятно для большинства, но ведь для пытливого ума это не сложность, от которой обязательно нужно уходить используя "чужой труд"
Никто и не говорит что это создано богами и дано нам свыше )

Разработчики бетона не строят дома и мосты. Их задача создавать стройматериал, в этом они лучшие. Задача архитектора строить мосты, ему нужен высокосортный бетон. Как думаешь если поменять их местами, что нибудь выйдет?
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уроки по созданию игр для новичков... -=DeS=- Gamedev - cоздание игр: Unity, OpenGL, DirectX 750 14.11.2017 20:26
Музыка программистов - как вы относитесь к АРИИ? Весёлый Жека Свободное общение 46 10.10.2008 22:32
Конкурсы по созданию игр на Delphi mutabor Свободное общение 0 15.06.2007 12:40
Работа по созданию ПО remix Фриланс 3 22.04.2007 11:00