Перейти к содержанию
Fire Monkey от А до Я

Поиск сообщества

Показаны результаты для тегов 'directX'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

Найдено: 4 результата

  1. Библиотека для работы с изображениями находится здесь. Готовится описание.
  2. Мне нужно сделать снимок экрана из своего приложения в приложении DirectX (в игре). По-быстрому накидал приложение, исходники здесь: MakeScreenshot-Forum.zip 1. по нажатию единственной кнопки будет выполнена серия из 16 снимков экрана. Если запущен Скайп, то фотографироваться будет содержимое его окна. 2. По нажатии CTRL+ALT+F9 будет сделан единичный снимок 3. Label внизу показывает сколько миллисекунд затрачено на вывод снимка 4. В комментах так же вы найдете, как работать со снимками через буфер обмена. Работа выполняется через GetDC(NULL); Windows 10 x64. Снимки делаются. И DirectX тоже нормально фотографируется. НО! только в оконных приложениях. Если приложение DirectX полноэкранное, то на всех снимках одна и та же картинка с первого снимка. То есть изменение буфера экрана в приложении ни как не отражается на снимках. Что нужно? Необходимо делать снимки конкретного приложения через интерфейс DirectX, а точнее, я так понимаю, через DirectShow. Тогда не будет разницы в окне оно или на полный экран. Помогите плиз, знающие люди, с решением этой задачи. Гарантирую вам от сообщества большой почет, от меня огромный респект, если это принесет доход, то еще и очень приятный бонус. Ссылки теме: 1. DIRECTX FOR DELPHI 2. unofficial version of DelphiX 3. DirectX для начинающих 4. MinHook - The Minimalistic x86/x64 API Hooking Library 5. Various methods for capturing the screen 6. Вывод графики на рабочий стол Windows с использованием оверлеев DirectX 7. Project JEDI 8. Реализация перехвата вызовов API — исчерпывающе про внедрение DLL, если разобраться, + это на Delphi UPD: 9. Серия видео уроков Пишем D3D-хук — все понятно, только в Delphi перенести нужно. UPD 2: Научился рисовать в Direct3D и ловить интерфейс IDirect3DDevice9. Теперь делаю DLL ловушку для реализации снимков.
  3. Привожу пример готового FMX приложения, которое рисует на форме с помощью интерфейса IDirect3DDevice9. В примере реализован вызов анонимного метода Present() интерфейса IDirect3DDevice9, имея ссылку на интерфейс и порядковый номер метода. Данная реализация пригодится при установке ловушек (Hooks). Вкратце, суть реализации такая: Объявляю процедурный тип нужного метода type TPresent9 = function(pSourceRect, pDestRect: PRect; hDestWindowOverride: HWND; pDirtyRegion: PRgnData): HResult of object; stdcall; Объявляю переменную этого типа var PPresent: TPresent9; begin ... IntRefToMethPtr(d3d9Dev, PPresent, 17); PPresent(nil, nil, DParametrs.D3DPP.hDeviceWindow, nil); Реализую процедуру получения метода интерфейса по номеру procedure IntRefToMethPtr(const IntRef; var MethPtr; MethNo: Integer); type TVtable = array [0 .. 999] of Pointer; PVtable = ^TVtable; PPVtable = ^PVtable; begin // QI=0, AddRef=1, Release=2, etc TMethod(MethPtr).Code := PPVtable(IntRef)^^[MethNo]; TMethod(MethPtr).Data := Pointer(IntRef); end; А теперь получаем метод интерфейса по его порядковому номеру и вызываем его IntRefToMethPtr(d3d9Dev, PPresent, 17); PPresent(nil, nil, DParametrs.D3DPP.hDeviceWindow, nil); Благодарю за оценку этого решения на StackOverflow. Скачать пример: D3DDemo.zip
  4. Коллеги, писал пост ранее на похожую тему, а воз и ныне там. Сегодня опять гром среди ясного неба. Написал пользователь программы, говорит, что при запуске ошибка. У него windows vista. Вот скрин: Написана, естественно в берлине. Кроме как обновить дрова видеокарты и directX я не нашел, что пописать пользователю. Естественно вопрос в аудиторию: 1) Что это за ошибка? 2) Как с ней бороться? 3) Какие вещи нужно обновлять в windows, для исправление этой ошибки? Вроде сказано и мы это обсуждали, что выпилили только windows XP, а остальное осталось. Эта ошибка в viste, до этого поста была в windows 7!!! Который я тоже так и не решил! Помогите кто чем сможет, не комильфо это, декларировать поддержку операционной системы, а ее нет((
×
×
  • Создать...