Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 26.04.2008, 20:26   #471
Beermonza
Инженер ИС
Профессионал
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
Репутация: 746
По умолчанию Быстрый способ копирования 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,928
Репутация: 1570

icq: 401708834
По умолчанию

Хм, интересно, надо будет попробовать когда время будет.

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

Задача номер 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,691
Репутация: 615

icq: 426824418
По умолчанию

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

А как в 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,928
Репутация: 1570

icq: 401708834
По умолчанию

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

[off] Да и вообще, если честно, ерундой занимаешься, ведь времени много тратишь наверное. Лучше бы DX или OGL изучал (нового узнаешь ничуть не меньше). Все равно GDI в том виде в к-ром мы привыкли уходит в прошлое, Виста уже видеокарту на полную катушку юзает. Да и проект серьезный по вашим же словам, с GDI как-то не клеится. Имхо GDI годится для интерфейса программ и максимум для "настольных" игр. [/off]
mutabor вне форума   Ответить с цитированием
Старый 09.05.2008, 16:32   #477
Beermonza
Инженер ИС
Профессионал
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
Репутация: 746
По умолчанию

Ну, время не трачу, ...тут даже не 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,928
Репутация: 1570

icq: 401708834
По умолчанию Немного порассуждаем )

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

Какую библиотеку использовать, это конечно на любителя. У кого какие требования или просто привычка. Я бы перешел на более низкоуровневую только в том случае, если так как сделано в высокоуровневой меня не устраивает. То есть сделал бы для себя так как мне надо, но тут конечно тоже есть "критическая точка" из-за мелочи какой-то не стал бы.
Это я к тому, что если библиотека хорошая, все устраивает, особых претензий нет, почему бы ее не использовать. А если она высокоуровневая, так это даже хорошо, можно сосредоточиться на решении других задач.
Взять к примеру какой нибудь OGL движок, если я сам на чистом OGL сделаю хуже, и времени потрачу больше, очевидно что лучше заюзать движок. А если он хороший, и лучше сделать это надо еще постараться, то нет особого резона вообще изучать OGL в оригинале.
Это конечно если смотреть с сугубо практической точки зрения. Если есть спортивный интерес или желание познать суть процесса, эт канеш другое дело )
Чето меня на философию потянуло )))
Цитата:
Главное - не делать ничего лишнего, ...путь тяжелый, ...соблазн облегчить себе жизнь, но нет, ...есть цель нужно ее достичь.
Нам бы день простоять, да ночь продержаться )))

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

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

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

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

icq: 401708834
По умолчанию

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

Разработчики бетона не строят дома и мосты. Их задача создавать стройматериал, в этом они лучшие. Задача архитектора строить мосты, ему нужен высокосортный бетон. Как думаешь если поменять их местами, что нибудь выйдет?
mutabor вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


18:25.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.