Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21

вопрос про SlimDX

19.08.2011, 00:38. Показов 4706. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
при компиляции окна с использованием SlimDX.Direct3D9
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
30
31
32
33
34
35
36
using System;
using System.Drawing;
using System.Windows.Forms;
using SlimDX;
using SlimDX.Direct3D9;
 
namespace dx9test
{
    public partial class Form1 : Form
    {
        Device device;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            device = new Device(new Direct3D(), 0, DeviceType.Hardware, this.Handle, 
                CreateFlags.HardwareVertexProcessing, new PresentParameters
            {
                BackBufferHeight = Height,
                BackBufferWidth = Width
            });
        }
 
        protected override void OnPaint(PaintEventArgs e)
        {
            device.Clear(ClearFlags.Target, Color.CornflowerBlue, 1.0f, 0);
            device.BeginScene();
            device.EndScene();
            device.Present();
        }
    }
}
никаких проблем не возникает, всё понятно и не сложно. А вот с Direct3D10 никак не могу разобраться. Пишу так
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
30
31
32
33
using System;
using System.Drawing;
using System.Windows.Forms;
using SlimDX;
using SlimDX.Direct3D10;
 
namespace dx10test
{
    public partial class Form1 : Form
    {
        Device device;
        RenderTargetView renderTarget;
        SlimDX.DXGI.SwapChain swapchain;
        SlimDX.DXGI.SwapChainDescription swapchaindescription;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            Device.CreateWithSwapChain(null, DriverType.Hardware, 
                DeviceCreationFlags.None, swapchaindescription, out device, out swapchain);
        }
 
        protected override void OnPaint(PaintEventArgs e)
        {
            device.ClearRenderTargetView(renderTarget, Color.CornflowerBlue);
            swapchain.Present(0, SlimDX.DXGI.PresentFlags.None);
        }
    }
}
при компиляции выдаёт ошибку (скрин в прикреплённых) на этой строке
C#
1
2
Device.CreateWithSwapChain(null, DriverType.Hardware, 
                DeviceCreationFlags.None, swapchaindescription, out device, out swapchain);
если кто-то разбирается в SlimDX объясните что я делаю не так, или скажите книгу/статью (хотя бы на английском), я ничего толкового найти не смог.
Миниатюры
вопрос про SlimDX  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.08.2011, 00:38
Ответы с готовыми решениями:

моя первая плата, хедеры - вопрос про eagle или про пайку
До сих пор я паял платы на однослойных платах для прототипирования - примерно вот таких http://www.ebay.som/itm/221207693405 Один из...

Вопрос про обратную связь, и про схемотехнику полумоста
Добрый день) Я сейчас делаю схему от уважаемого rost c форума http://www.psb-kots.ru/forum/ , и мне непонятны некоторые моменты, а тот...

вопрос про Sape, про поиск площадок
Делаю поиск площалок. В каждом пункте результатов поиска есть кнопки BL и GBL. Что они значат и что делают (или что должны делать) -...

1
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
20.08.2011, 23:25  [ТС]
всё, сделал сам, вот
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using System;
using System.Drawing;
using System.Windows.Forms;
using SlimDX;
using SlimDX.Direct3D10;
 
namespace dx10test
{
    public partial class Form1 : Form
    {
        SlimDX.Direct3D10_1.Device1 device;
        RenderTargetView renderTarget;
        SlimDX.DXGI.SwapChain swapChain;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            SlimDX.DXGI.SampleDescription sample = new SlimDX.DXGI.SampleDescription()
            {
                Count = 1,
                Quality = 0
            };
 
            SlimDX.DXGI.ModeDescription mode = new SlimDX.DXGI.ModeDescription()
            {
                Width = Width,
                Height = Height,       
                RefreshRate = new Rational(60, 1),
                Format = SlimDX.DXGI.Format.R8G8B8A8_UNorm,
                Scaling = SlimDX.DXGI.DisplayModeScaling.Unspecified,
                ScanlineOrdering = SlimDX.DXGI.DisplayModeScanlineOrdering.Unspecified
            };
 
            SlimDX.DXGI.SwapChainDescription description = new SlimDX.DXGI.SwapChainDescription()
            {
                BufferCount = 1,
                IsWindowed = true,
                OutputHandle = Handle,
                ModeDescription = mode,
                SampleDescription = sample,
                Flags = SlimDX.DXGI.SwapChainFlags.None,
                SwapEffect = SlimDX.DXGI.SwapEffect.Discard,
                Usage = SlimDX.DXGI.Usage.RenderTargetOutput
            };
 
            SlimDX.DXGI.Factory factory = new SlimDX.DXGI.Factory();
            device = new SlimDX.Direct3D10_1.Device1(factory.GetAdapter(0), DriverType.Hardware, 
                DeviceCreationFlags.None, SlimDX.Direct3D10_1.FeatureLevel.Level_10_0);
            swapChain = new SlimDX.DXGI.SwapChain(factory, device, description);
            renderTarget = new RenderTargetView(device, Resource.FromSwapChain<Texture2D>(swapChain, 0));
            device.Rasterizer.SetViewports(new Viewport(0, 0, Width, Height, 0.0f, 1.0f));
        }
 
        protected override void OnPaint(PaintEventArgs e)
        {
            device.ClearRenderTargetView(renderTarget, Color.CornflowerBlue);
            swapChain.Present(0, SlimDX.DXGI.PresentFlags.None);
        }
    }
}
по сравнению с окном на dx9 кода очень много и приходится определять и вводить переменные, которые в dx9 не требовались.
единственное смущает пространство имён Direct3D10_1 (насколько я понимаю это DirectX10.1). Моя видеокарта (9800GTX) поддерживает до dx10, как так скомпилировалось не знаю, но с Direct3D10 я так и не смог определить device.
интересный параметр Level_10_0. Выбрать можно следующие варианты: Level_9_1, Level_9_2, Level_9_3, Level_10_0, Level_10_1. Исходя из логических соображений могу предположить что это соответствует версиям dx - DirectX 9.0a, DirectX 9.0b, DirectX 9.0c, DirectX 10 и DirectX 10.1. Следовательно, скомпилировав с параметром Level_10_0 приложение не должно запуститься на видеокартах не поддерживающих dx10 и выше (кстати с Level_10_1 программа на моей видеокарте не компилируется). Если у кого-то есть такая видеокарта проверьте пожалуйста эту теорию, если что экзешник в прикреплённых.
Вложения
Тип файла: rar dx10test.rar (4.2 Кб, 73 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.08.2011, 23:25
Помогаю со студенческими работами здесь

Вопрос про pr
Добрый день уважаемые форумчане. Интересует следущий вопрос: 1.Перетекает ли pr с картинок? 2.Если да то каким образом?

Вопрос про Pr
Всех приветсвую. начнем: Например если я великий дизайнер, у меня есть сайт c pr1-pr0. На этот сайт начинает ссылается adobe c...

Вопрос про PR
После пересчета некоторым страницам сайта был присвоен PR 2-3, у главной страницы PR 0. Редирект не стоит, сайту 4 месяца. Данные про PR...

вопрос про PR
А чем отличаеться Toolbar PageRank от Live PageRank, и почему они разные?

Вопрос про ip
Здравствуйте! Ребят, выручите. С другом хотим в диабло по сети поиграть, у него ноут, виста, вай-фай. У меня стационарный комп, ХР. Дома...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru