Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Исключение Access violation writing location 0x0582D000 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа с классами http://www.cyberforum.ru/cpp-beginners/thread1098558.html
Программа работает некорректно... не выводит студентов введенных с клавиатуры.... :( выводит только и сравнивает только этих: facultet() { T_student a = {"Ivanov I. I.","FIST",3,1,1,1994};...
C++ Рассчитать значение функции в заданной с консоли точке Цель работы: изучить различные способы обработки исключений; 2) получить практические навыки программирования задач с обработкой исключений. Задание: Рассчитать значение функции в заданной с... http://www.cyberforum.ru/cpp-beginners/thread1098535.html
C++ Написать функцию поиска структур (записей) с заданными признаками
Написать функцию поиска структур (записей) с заданными признаками (например, выбор структур по заданному диапазону значений элемента). "Автомобиль": марка; цвет; серийный номер; регистрационный...
C++ Написать программу которая переводит строку в обратную сторону
написать программу которая переводит строку в обратную сторону при этом не используя функцию strrev (задание само выглядит так : "ьтасипан уммаргорп адовереп йоннадаз икортс оп умещюуделс...
C++ Написать программу которая будет "переворачивать слова в обратную строну" http://www.cyberforum.ru/cpp-beginners/thread1098465.html
мне нужно написать программу которая будет "переворачивать слова в обратную строну" например : написать программу перевода заданной строки по следующему принципу а перевести в "ьтасипан уммаргорп...
C++ Динамический массив структур - ошибка "попытка чтения или записи в защищенную память" не работает: class Students { struct list { string marka_mashini; string familiya_vladelca; int god_vipuska; string registracionniy_nomer; string data_tehosmotra; }; подробнее

Показать сообщение отдельно
NEvOl
19 / 18 / 0
Регистрация: 13.08.2012
Сообщений: 727
17.02.2014, 16:43  [ТС]
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
ID3D11Texture2D* CreateTexture2D(ID3D11Texture2D *srcText)
{
 
    D3D11_TEXTURE2D_DESC srcTD;
    ZeroMemory(&srcTD, sizeof(srcTD));
    srcText->GetDesc(&srcTD);
 
    UINT width = srcTD.Width/2;
    if(!width)
        width = 1;
    UINT height = srcTD.Height/2;
    if(!height)
        height = 1;
    float stepU = srcTD.Width/(float)width;
    float stepV = srcTD.Height/(float)height;
    float sUV = stepU*stepV;
 
    int sizeVBox = ceil(stepV);
    int sizeUBox = ceil(stepU);
    struct ColorTexels
    {
        XMCOLOR color;
        float weight;
        ColorTexels()
        {
            weight = 0;
        }
    };
 
    ColorTexels **colorBox = new ColorTexels*[sizeVBox];
    for(int i = 0; i < sizeVBox; i++)
        colorBox[i] = new ColorTexels[sizeUBox];
 
    XMCOLOR *dstBuffTexels = new XMCOLOR[width * height];//буфер текселей новой текстуры
    XMCOLOR *srcBuffTexels = new XMCOLOR[srcTD.Width * srcTD.Height];//данные цветов исходной текстуры
 
 
    D3D11_MAPPED_SUBRESOURCE ms;
    ZeroMemory(&ms, sizeof(ms));
 
    if(FAILED(g_pDeviceContext->Map(srcText, 0, D3D11_MAP_READ, 0, &ms)))
    {
        MessageBox(NULL, L"DeviceContext->Map() - Failed", NULL, NULL);
        return 0;
    }
    
    memcpy(srcBuffTexels, ms.pData, ms.RowPitch * srcTD.Height);//тут ломается
 
    g_pDeviceContext->Unmap(srcText, 0);
 
    for(int i = 0; i < height; i++)
        for(int j = 0; j < width; j++)
        {
            float bU = stepU * j;
            float eU = bU + stepU;
 
            float bV = stepV * i;
            float eV = bV + stepV;
 
            float sumU = bU, sumV = bV;
            float sU, sV;
            dstBuffTexels[width*i+j] = 0;
            
            for(int k = 0; k < sizeVBox; k++)
            {
                for(int q = 0; q < sizeUBox; q++)
                {
                    colorBox[k][q].color = srcBuffTexels[srcTD.Width*((int)bV+k) + (int)bU+q];
                    
                    if((int)(bU+q) + 1 <= stepU + bU)
                        sU = (int)(bU+q) + 1 - sumU;
                    else
                        sU = eU - (int)eU;
 
                    if((int)(bV+k) + 1 <= stepV+ bV)
                        sV = (int)(bV+k) + 1 - sumV;
                    else
                        sV = eV - (int)eV;
 
                    sumU += sU;
 
                    colorBox[k][q].weight = (sU*sV)/sUV;
 
                }
                sumU = bU;
                sumV += sV;
            }
            for(int e = 0; e < sizeVBox; e++)
                for(int r = 0; r <sizeUBox; r++)
                {
                    colorBox[e][r].color.b *= colorBox[e][r].weight;
                    colorBox[e][r].color.r *= colorBox[e][r].weight;
                    colorBox[e][r].color.g *= colorBox[e][r].weight;
                    dstBuffTexels[width*i+j] = dstBuffTexels[width*i+j] + colorBox[e][r].color;
                }
             
        }
 
    delete  []srcBuffTexels;
 
    for(int i = 0; i < sizeVBox; i++)
            delete []colorBox[i];
    delete []colorBox;
 
    ID3D11Texture2D *text = NULL;
    
    D3D11_SUBRESOURCE_DATA sd;
    ZeroMemory(&sd, sizeof(sd));
    sd.pSysMem = (void*)dstBuffTexels;
    sd.SysMemPitch = width*4;
    sd.SysMemSlicePitch = sd.SysMemPitch*height;
 
    D3D11_TEXTURE2D_DESC td;
    ZeroMemory(&td, sizeof(td));
    td.Width = width;
    td.Height = height;
    td.MipLevels = 1;
    td.ArraySize = 1;
    td.SampleDesc.Count = 1;
    td.SampleDesc.Quality = 0;
    td.Usage = D3D11_USAGE_STAGING;
    td.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
    td.BindFlags = 0;
    td.CPUAccessFlags = D3D11_CPU_ACCESS_READ;
    td.MiscFlags = 0;
    
    if(FAILED(g_pDevice->CreateTexture2D(&td, &sd, &text)))
    {
        MessageBox(NULL, L"Create MipLevel - Failed", NULL, NULL);
        return 0;
    }
 
    delete []dstBuffTexels;
    
    return text;
    
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru