Skip to content

Commit bdb6581

Browse files
pradeepumar456
authored andcommitted
Increment forge tag v1.0.1 stable release
Change all necessary arrayfire internal forge calls to use forge v1.0 API.
1 parent 911c9a2 commit bdb6581

File tree

9 files changed

+52
-13
lines changed

9 files changed

+52
-13
lines changed

CMakeModules/build_forge.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ ELSE()
4646
ENDIF(WIN32)
4747
ENDIF()
4848

49-
SET(FORGE_VERSION 0.9.2)
49+
SET(FORGE_VERSION 1.0.1)
5050

5151
# FIXME Tag forge correctly during release
5252
ExternalProject_Add(

src/api/c/graphics_common.cpp

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <platform.hpp>
1717
#include <util.hpp>
1818
#include <mutex>
19+
#include <utility>
1920

2021
using namespace std;
2122
using namespace gl;
@@ -246,6 +247,7 @@ void ForgeManager::setWindowChartGrid(const forge::Window* window,
246247
const int r, const int c)
247248
{
248249
ChartMapIter iter = mChartMap.find(window);
250+
GridMapIter gIter = mWndGridMap.find(window);
249251

250252
if(iter != mChartMap.end()) {
251253
// ChartVec found. Clear it.
@@ -258,25 +260,40 @@ void ForgeManager::setWindowChartGrid(const forge::Window* window,
258260
}
259261
}
260262
(iter->second).clear();
263+
gIter->second = std::make_pair<int, int>(1, 1);
261264
}
262265

263266
if(r == 0 || c == 0) {
264267
mChartMap.erase(window);
268+
mWndGridMap.erase(window);
265269
} else {
266270
mChartMap[window] = std::vector<forge::Chart*>(r * c);
271+
mWndGridMap[window] = std::make_pair(r, c);
267272
}
268273
}
269274

275+
WindGridDims_t ForgeManager::getWindowGrid(const forge::Window* window)
276+
{
277+
GridMapIter gIter = mWndGridMap.find(window);
278+
279+
if (gIter == mWndGridMap.end()) {
280+
mWndGridMap[window] = std::make_pair(1, 1);
281+
}
282+
283+
return mWndGridMap[window];
284+
}
285+
270286
forge::Chart* ForgeManager::getChart(const forge::Window* window, const int r, const int c,
271287
const forge::ChartType ctype)
272288
{
273289
forge::Chart* chart = NULL;
274290
ChartMapIter iter = mChartMap.find(window);
291+
GridMapIter gIter = mWndGridMap.find(window);
275292

276293
if (iter != mChartMap.end()) {
277294

278-
int gRows = window->gridRows();
279-
int gCols = window->gridCols();
295+
int gRows = std::get<0>(gIter->second);
296+
int gCols = std::get<1>(gIter->second);
280297

281298
if(c >= gCols || r >= gRows)
282299
AF_ERROR("Grid points are out of bounds", AF_ERR_TYPE);

src/api/c/graphics_common.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,11 @@ typedef VectorFieldMap_t::iterator VcfMapIter;
6868

6969
typedef std::vector<forge::Chart*> ChartVec_t;
7070
typedef std::map<const forge::Window*, ChartVec_t> ChartMap_t;
71+
typedef std::pair<int, int> WindGridDims_t;
72+
typedef std::map<const forge::Window*, WindGridDims_t> WindGridMap_t;
7173
typedef ChartVec_t::iterator ChartVecIter;
7274
typedef ChartMap_t::iterator ChartMapIter;
75+
typedef WindGridMap_t::iterator GridMapIter;
7376

7477
// Keeps track of which charts have manually assigned axes limits
7578
typedef std::map<forge::Chart*, bool> ChartAxesOverride_t;
@@ -97,6 +100,7 @@ class ForgeManager
97100
VectorFieldMap_t mVcfMap;
98101

99102
ChartMap_t mChartMap;
103+
WindGridMap_t mWndGridMap;
100104
ChartAxesOverride_t mChartAxesOverrideMap;
101105

102106
public:
@@ -109,6 +113,7 @@ class ForgeManager
109113
void setWindowChartGrid(const forge::Window* window,
110114
const int r, const int c);
111115

116+
WindGridDims_t getWindowGrid(const forge::Window* window);
112117
forge::Chart* getChart(const forge::Window* window, const int r, const int c,
113118
const forge::ChartType ctype);
114119

src/api/c/hist.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,9 +108,11 @@ af_err af_draw_hist(const af_window wind, const af_array X, const double minval,
108108
default: TYPE_ERROR(1, Xtype);
109109
}
110110

111+
auto gridDims = ForgeManager::getInstance().getWindowGrid(window);
111112
// Window's draw function requires either image or chart
112113
if (props->col > -1 && props->row > -1)
113-
window->draw(props->row, props->col, *chart, props->title);
114+
window->draw(gridDims.first, gridDims.second, props->col * gridDims.first + props->row,
115+
*chart, props->title);
114116
else
115117
window->draw(*chart);
116118
}

src/api/c/image.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,11 @@ af_err af_draw_image(const af_window wind, const af_array in, const af_cell* con
106106
default: TYPE_ERROR(1, type);
107107
}
108108

109+
auto gridDims = ForgeManager::getInstance().getWindowGrid(window);
109110
window->setColorMap((forge::ColorMap)props->cmap);
110111
if (props->col>-1 && props->row>-1)
111-
window->draw(props->row, props->col, *image, props->title);
112+
window->draw(gridDims.first, gridDims.second, props->col * gridDims.first + props->row,
113+
*image, props->title);
112114
else
113115
window->draw(*image);
114116
}

src/api/c/plot.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,9 +152,11 @@ af_err plotWrapper(const af_window wind, const af_array in, const int order_dim,
152152
default: TYPE_ERROR(1, type);
153153
}
154154

155+
auto gridDims = ForgeManager::getInstance().getWindowGrid(window);
155156
// Window's draw function requires either image or chart
156157
if (props->col>-1 && props->row>-1)
157-
window->draw(props->row, props->col, *chart, props->title);
158+
window->draw(gridDims.first, gridDims.second, props->col * gridDims.first + props->row,
159+
*chart, props->title);
158160
else
159161
window->draw(*chart);
160162
}
@@ -212,9 +214,11 @@ af_err plotWrapper(const af_window wind, const af_array X, const af_array Y, con
212214
default: TYPE_ERROR(1, xType);
213215
}
214216

217+
auto gridDims = ForgeManager::getInstance().getWindowGrid(window);
215218
// Window's draw function requires either image or chart
216219
if (props->col>-1 && props->row>-1)
217-
window->draw(props->row, props->col, *chart, props->title);
220+
window->draw(gridDims.first, gridDims.second, props->col * gridDims.first + props->row,
221+
*chart, props->title);
218222
else
219223
window->draw(*chart);
220224

@@ -266,9 +270,11 @@ af_err plotWrapper(const af_window wind, const af_array X, const af_array Y,
266270
default: TYPE_ERROR(1, xType);
267271
}
268272

273+
auto gridDims = ForgeManager::getInstance().getWindowGrid(window);
269274
// Window's draw function requires either image or chart
270275
if (props->col>-1 && props->row>-1)
271-
window->draw(props->row, props->col, *chart, props->title);
276+
window->draw(gridDims.first, gridDims.second, props->col * gridDims.first + props->row,
277+
*chart, props->title);
272278
else
273279
window->draw(*chart);
274280

src/api/c/surface.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,10 @@ af_err af_draw_surface(const af_window wind, const af_array xVals, const af_arra
168168
default: TYPE_ERROR(1, Xtype);
169169
}
170170

171+
auto gridDims = ForgeManager::getInstance().getWindowGrid(window);
171172
if (props->col>-1 && props->row>-1)
172-
window->draw(props->row, props->col, *chart, props->title);
173+
window->draw(gridDims.first, gridDims.second, props->col * gridDims.first + props->row,
174+
*chart, props->title);
173175
else
174176
window->draw(*chart);
175177
}

src/api/c/vector_field.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,11 @@ af_err vectorFieldWrapper(const af_window wind, const af_array points, const af_
159159
default: TYPE_ERROR(1, pType);
160160
}
161161

162+
auto gridDims = ForgeManager::getInstance().getWindowGrid(window);
162163
// Window's draw function requires either image or chart
163164
if (props->col > -1 && props->row > -1)
164-
window->draw(props->row, props->col, *chart, props->title);
165+
window->draw(gridDims.first, gridDims.second, props->col * gridDims.first + props->row,
166+
*chart, props->title);
165167
else
166168
window->draw(*chart);
167169
}
@@ -247,9 +249,11 @@ af_err vectorFieldWrapper(const af_window wind,
247249
default: TYPE_ERROR(1, xpType);
248250
}
249251

252+
auto gridDims = ForgeManager::getInstance().getWindowGrid(window);
250253
// Window's draw function requires either image or chart
251254
if (props->col > -1 && props->row > -1)
252-
window->draw(props->row, props->col, *chart, props->title);
255+
window->draw(gridDims.first, gridDims.second, props->col * gridDims.first + props->row,
256+
*chart, props->title);
253257
else
254258
window->draw(*chart);
255259
}
@@ -323,9 +327,11 @@ af_err vectorFieldWrapper(const af_window wind,
323327
default: TYPE_ERROR(1, xpType);
324328
}
325329

330+
auto gridDims = ForgeManager::getInstance().getWindowGrid(window);
326331
// Window's draw function requires either image or chart
327332
if (props->col > -1 && props->row > -1)
328-
window->draw(props->row, props->col, *chart, props->title);
333+
window->draw(gridDims.first, gridDims.second, props->col * gridDims.first + props->row,
334+
*chart, props->title);
329335
else
330336
window->draw(*chart);
331337
}

src/api/c/window.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,6 @@ af_err af_grid(const af_window wind, const int rows, const int cols)
124124

125125
try {
126126
forge::Window* wnd = reinterpret_cast<forge::Window*>(wind);
127-
wnd->grid(rows, cols);
128127

129128
// Recreate a chart map
130129
ForgeManager& fgMngr = ForgeManager::getInstance();

0 commit comments

Comments
 (0)