0 / 0 / 0
Регистрация: 23.04.2017
Сообщений: 12
1

Dx11 Как вывести в область окна а не на все окно

03.09.2018, 11:11. Показов 1402. Ответов 15

Author24 — интернет-сервис помощи студентам
Создаю оно 800 600
Дх11 устройства D3D11CreateDeviceAndSwapChain с параметрами 100 100
в D3D11_VIEWPORT тоже 100 на 100

Все равно вывод на все окно путем растягивания. Мож кто знает, как отключить растягивание, чтобы выводилось в область окна?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.09.2018, 11:11
Ответы с готовыми решениями:

Как вывести popup модальное окно с размером окна браузера?
мне надо , чтобы окно открывалось на высоту браузера (картинка закреплена) <!--...

Окно: создать 4 окна, в центре каждого из окон вывести номер окна в порядке создания(1-4)
Не могу справиться с программой, Нужно создать 4 окна. В центре каждого из окон вывести номер окна...

Как объединить все окна интерфейса Lazarus в одно единое окно?
Интерфейс Lazarus разбит на огромную кучу мелких неудобных окон. Можно ли как-то все их объединить...

Как вывести текст в DX11 без использования интерфейсов от DX9?
Без использования интерфейсов от DX9

15
4 / 2 / 2
Регистрация: 26.03.2018
Сообщений: 78
01.11.2018, 11:21 2
Sashasan, Та же самая проблема. Я пробовал использовать D3D11_RECT:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
ID3D11RasterizerState* g_pRasterizerState = NULL;
 
// код...
 
void InitDevice{
// ...
    D3D11_RASTERIZER_DESC rasterDesc;
    ZeroMemory(&rasterDesc, sizeof(D3D11_RASTERIZER_DESC));
    rasterDesc.ScissorEnable = TRUE;
    g_pd3dDevice->CreateRasterizerState(&rasterDesc, &g_pRasterizerState);
 
    g_pImmediateContext->RSSetState(g_pRasterizerState);
 
    D3D11_RECT rect = { 100, 0, 400, 400 };
    g_pImmediateContext->RSSetScissorRects(1, &rect);
    g_pImmediateContext->OMSetRenderTargets(1, &g_pRenderTargetView, g_pDepthStencilView);
 
 
    // Setup the viewport
    D3D11_VIEWPORT vp;
    vp.Width = 400;
    vp.Height = 400;
    vp.MinDepth = 0.0f;
    vp.MaxDepth = 1.0f;
    vp.TopLeftX = 0;
    vp.TopLeftY = 0;
    g_pImmediateContext->RSSetViewports(1, &vp);
// ...
}
Однако фон за пределами RECTa все-равно рисуется.
Вот скрин: pastenow ru/5467105a5cddabeb06dc50c086bf2be2
0
0 / 0 / 0
Регистрация: 23.04.2017
Сообщений: 12
13.11.2018, 21:09  [ТС] 3
Походу дела никак.
0
169 / 99 / 25
Регистрация: 07.08.2016
Сообщений: 382
Записей в блоге: 1
15.11.2018, 20:28 4
Создайте в окне контрол и выводите в него.
к примеру этот код выведет во все окно
VB.NET
1
2
3
4
5
d3dpp.DeviceWindow = Me 
d3dpp.BackBufferCount = 1
d3dpp.BackBufferFormat = Format.X8R8G8B8
d3dpp.BackBufferWidth = 800
d3dpp.BackBufferHeight = 600
а этот только в часть размером с контрол (в данном случаи PictureBox1)
VB.NET
1
2
3
4
5
d3dpp.DeviceWindow = Me.PictureBox1 
d3dpp.BackBufferCount = 1
d3dpp.BackBufferFormat = Format.X8R8G8B8
d3dpp.BackBufferWidth = 800
d3dpp.BackBufferHeight = 600
0
0 / 0 / 0
Регистрация: 23.04.2017
Сообщений: 12
17.11.2018, 12:09  [ТС] 5
Да это все понятно можно дочернее окно создать и в него выводить или новое отдельное окно.
0
169 / 99 / 25
Регистрация: 07.08.2016
Сообщений: 382
Записей в блоге: 1
17.11.2018, 12:36 6
Цитата Сообщение от Sashasan Посмотреть сообщение
Да это все понятно можно дочернее окно создать и в него выводить или новое отдельное окно.
Вы не поняли.Окно одно и никаких окон больше не создается.
Вы можете создать поверхность DirectX в любом контроле, например в кнопке.
0
0 / 0 / 0
Регистрация: 23.04.2017
Сообщений: 12
20.11.2018, 12:10  [ТС] 7
Контрол тоже окно, так что нет разница дочернее или контрол.
0
169 / 99 / 25
Регистрация: 07.08.2016
Сообщений: 382
Записей в блоге: 1
23.11.2018, 17:53 8
Цитата Сообщение от Sashasan Посмотреть сообщение
Контрол тоже окно
?
0
0 / 0 / 0
Регистрация: 23.04.2017
Сообщений: 12
24.11.2018, 17:27  [ТС] 9
сам по исследуй
0
169 / 99 / 25
Регистрация: 07.08.2016
Сообщений: 382
Записей в блоге: 1
24.11.2018, 21:52 10
ИМХО Не перестаю поражаться глупости.
Sashasan, Создайте пожалуйста контрол , например кнопку - не принадлежащую к окнам, не имеющую хэндла.
0
0 / 0 / 0
Регистрация: 23.04.2017
Сообщений: 12
26.11.2018, 20:15  [ТС] 11
Ну все правильно контрол тоже окно, но с ограничениями.
0
169 / 99 / 25
Регистрация: 07.08.2016
Сообщений: 382
Записей в блоге: 1
27.11.2018, 16:17 12
Sashasan,
0
0 / 0 / 0
Регистрация: 23.04.2017
Сообщений: 12
28.11.2018, 12:56  [ТС] 13
Допустим тебя не устроил виндовс контрол и ты захотел написать свой, но так чтобы он сохранил стилистику виндовса. Как ты будешь его делать. Скорей всего создашь класс в котором какой нить функцией будешь создавать окно. Вопрос в том чем те кто делал стандартные контролы ваиндовс хуже?
0
169 / 99 / 25
Регистрация: 07.08.2016
Сообщений: 382
Записей в блоге: 1
29.11.2018, 13:00 14
Sashasan,
Цитата Сообщение от Sashasan Посмотреть сообщение
Допустим тебя не устроил виндовс контрол и ты захотел написать свой
Напишу свой стиль для Windows.
Еще вопросы?
0
0 / 0 / 0
Регистрация: 23.04.2017
Сообщений: 12
29.11.2018, 22:00  [ТС] 15
Чо уж там мелочится - лучше свою операционку
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
29.11.2018, 22:03 16
Цитата Сообщение от Sashasan Посмотреть сообщение
Чо уж там мелочится - лучше свою операционку
+ к опыту
0
29.11.2018, 22:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2018, 22:03
Помогаю со студенческими работами здесь

При нажатии на любую ссылку или область окна браузера открывается новое окно с рекламой
В Google_Хром у меня много закреплённых вкладок. После запуска Хрома,при нажатии на любую область,в...

Как проверить всё ли окно отображается на мониторе? То есть не скрыта ли часть окна в мертвой зоне раб стола?
Как проверить всё ли окно отображается на мониторе? То есть не скрыта ли часть окна в мертвой зоне...

Главное окно скрыто... как развернуть все Второстепенные окна после сворачивания(разворачивается только главное невидимое
Главное окно скрыто... как развернуть все Второстепенные окна после сворачивания(разворачивается...

Растягивание ajax - окна на всё окно браузера
Здравствуйте, надо растянуть ajax-окно на всё окно браузера так как текст в нём в iframe, сейчас...

Вывести диалоговое окно с требованием подтверждения в процессе закрытия окна
Доброго всем времени суток. Подскажите, как реализовать такой функционал: При закрытии окна...

Вывести на экран окна разного цвета с уменьшающимся размером (окно в окне)
C использованием модуля CRT вывести на экран окна разного цвета с уменьшающимся размером (окно в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru