Coverage Report

Created: 2025-06-13 06:18

/src/MapServer/src/mapdummyrenderer.c
Line
Count
Source (jump to first uncovered line)
1
/******************************************************************************
2
 * $Id$
3
 *
4
 * Project:  MapServer
5
 * Purpose:  Dummy functions to implement when using a pluggable renderer
6
 * Author:   Thomas Bonfort, thomas.bonfort@gmail.com
7
 *
8
 ******************************************************************************
9
 * Copyright (c) 2010, Thomas Bonfort
10
 *
11
 * Permission is hereby granted, free of charge, to any person obtaining a
12
 * copy of this software and associated documentation files (the "Software"),
13
 * to deal in the Software without restriction, including without limitation
14
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
15
 * and/or sell copies of the Software, and to permit persons to whom the
16
 * Software is furnished to do so, subject to the following conditions:
17
 *
18
 * The above copyright notice and this permission notice shall be included in
19
 * all copies of this Software or works derived from this Software.
20
 *
21
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
22
 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
24
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
26
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
27
 * DEALINGS IN THE SOFTWARE.
28
 *****************************************************************************/
29
30
#include "mapserver.h"
31
32
0
int renderLineDummy(imageObj *img, shapeObj *p, strokeStyleObj *style) {
33
0
  (void)img;
34
0
  (void)p;
35
0
  (void)style;
36
0
  msSetError(MS_RENDERERERR, "renderLine not implemented", "renderLine()");
37
0
  return MS_FAILURE;
38
0
}
39
40
0
int renderPolygonDummy(imageObj *img, shapeObj *p, colorObj *color) {
41
0
  (void)img;
42
0
  (void)p;
43
0
  (void)color;
44
0
  msSetError(MS_RENDERERERR, "renderPolygon not implemented",
45
0
             "renderPolygon()");
46
0
  return MS_FAILURE;
47
0
}
48
49
0
int renderPolygonTiledDummy(imageObj *img, shapeObj *p, imageObj *tile) {
50
0
  (void)img;
51
0
  (void)p;
52
0
  (void)tile;
53
0
  msSetError(MS_RENDERERERR, "renderPolygonTiled not implemented",
54
0
             "renderPolygonTiled()");
55
0
  return MS_FAILURE;
56
0
}
57
58
0
int renderLineTiledDummy(imageObj *img, shapeObj *p, imageObj *tile) {
59
0
  (void)img;
60
0
  (void)p;
61
0
  (void)tile;
62
0
  msSetError(MS_RENDERERERR, "renderLineTiled not implemented",
63
0
             "renderLineTiled()");
64
0
  return MS_FAILURE;
65
0
}
66
67
int renderRasterGlyphsDummy(imageObj *img, double x, double y, int fontIndex,
68
0
                            colorObj *color, char *text) {
69
0
  (void)img;
70
0
  (void)x;
71
0
  (void)y;
72
0
  (void)fontIndex;
73
0
  (void)color;
74
0
  (void)text;
75
0
  msSetError(MS_RENDERERERR, "renderRasterGlyphs not implemented",
76
0
             "renderRasterGlyphs()");
77
0
  return MS_FAILURE;
78
0
}
79
80
int renderGlyphsLineDummy(imageObj *img, labelPathObj *labelpath,
81
0
                          labelStyleObj *style, char *text) {
82
0
  (void)img;
83
0
  (void)labelpath;
84
0
  (void)style;
85
0
  (void)text;
86
0
  msSetError(MS_RENDERERERR, "renderGlyphsLine not implemented",
87
0
             "renderGlyphsLine()");
88
0
  return MS_FAILURE;
89
0
}
90
91
int renderVectorSymbolDummy(imageObj *img, double x, double y,
92
0
                            symbolObj *symbol, symbolStyleObj *style) {
93
0
  (void)img;
94
0
  (void)x;
95
0
  (void)y;
96
0
  (void)symbol;
97
0
  (void)style;
98
0
  msSetError(MS_RENDERERERR, "renderVectorSymbol not implemented",
99
0
             "renderVectorSymbol()");
100
0
  return MS_FAILURE;
101
0
}
102
103
void *createVectorSymbolTileDummy(int width, int height, symbolObj *symbol,
104
0
                                  symbolStyleObj *style) {
105
0
  (void)width;
106
0
  (void)height;
107
0
  (void)symbol;
108
0
  (void)style;
109
0
  msSetError(MS_RENDERERERR, "createVectorSymbolTile not implemented",
110
0
             "createVectorSymbolTile()");
111
0
  return NULL;
112
0
}
113
114
int renderPixmapSymbolDummy(imageObj *img, double x, double y,
115
0
                            symbolObj *symbol, symbolStyleObj *style) {
116
0
  (void)img;
117
0
  (void)x;
118
0
  (void)y;
119
0
  (void)symbol;
120
0
  (void)style;
121
0
  msSetError(MS_RENDERERERR, "renderPixmapSymbol not implemented",
122
0
             "renderPixmapSymbol()");
123
0
  return MS_FAILURE;
124
0
}
125
126
void *createPixmapSymbolTileDummy(int width, int height, symbolObj *symbol,
127
0
                                  symbolStyleObj *style) {
128
0
  (void)width;
129
0
  (void)height;
130
0
  (void)symbol;
131
0
  (void)style;
132
0
  msSetError(MS_RENDERERERR, "createPixmapSymbolTile not implemented",
133
0
             "createPixmapSymbolTile()");
134
0
  return NULL;
135
0
}
136
137
int renderEllipseSymbolDummy(imageObj *image, double x, double y,
138
0
                             symbolObj *symbol, symbolStyleObj *style) {
139
0
  (void)image;
140
0
  (void)x;
141
0
  (void)y;
142
0
  (void)symbol;
143
0
  (void)style;
144
0
  msSetError(MS_RENDERERERR, "renderEllipseSymbol not implemented",
145
0
             "renderEllipseSymbol()");
146
0
  return MS_FAILURE;
147
0
}
148
149
void *createEllipseSymbolTileDummy(int width, int height, symbolObj *symbol,
150
0
                                   symbolStyleObj *style) {
151
0
  (void)width;
152
0
  (void)height;
153
0
  (void)symbol;
154
0
  (void)style;
155
0
  msSetError(MS_RENDERERERR, "createEllipseSymbolTile not implemented",
156
0
             "createEllipseSymbolTile()");
157
0
  return NULL;
158
0
}
159
160
int renderTruetypeSymbolDummy(imageObj *img, double x, double y,
161
0
                              symbolObj *symbol, symbolStyleObj *style) {
162
0
  (void)img;
163
0
  (void)x;
164
0
  (void)y;
165
0
  (void)symbol;
166
0
  (void)style;
167
0
  msSetError(MS_RENDERERERR, "renderTruetypeSymbol not implemented",
168
0
             "renderTruetypeSymbol()");
169
0
  return MS_FAILURE;
170
0
}
171
172
void *createTruetypeSymbolTileDummy(int width, int height, symbolObj *symbol,
173
0
                                    symbolStyleObj *style) {
174
0
  (void)width;
175
0
  (void)height;
176
0
  (void)symbol;
177
0
  (void)style;
178
0
  msSetError(MS_RENDERERERR, "createTruetypeSymbolTile not implemented",
179
0
             "createTruetypeSymbolTile()");
180
0
  return NULL;
181
0
}
182
183
0
int renderTileDummy(imageObj *img, imageObj *tile, double x, double y) {
184
0
  (void)img;
185
0
  (void)tile;
186
0
  (void)x;
187
0
  (void)y;
188
0
  msSetError(MS_RENDERERERR, "renderTile not implemented", "renderTile()");
189
0
  return MS_FAILURE;
190
0
}
191
192
0
rasterBufferObj *loadImageFromFileDummy(char *path) {
193
0
  (void)path;
194
0
  msSetError(MS_RENDERERERR, "loadImageFromFile not implemented",
195
0
             "loadImageFromFile()");
196
0
  return NULL;
197
0
}
198
199
0
int getRasterBufferHandleDummy(imageObj *img, rasterBufferObj *rb) {
200
0
  (void)img;
201
0
  (void)rb;
202
0
  msSetError(MS_RENDERERERR, "getRasterBufferHandle not implemented",
203
0
             "getRasterBufferHandle()");
204
0
  return MS_FAILURE;
205
0
}
206
207
0
int getRasterBufferCopyDummy(imageObj *img, rasterBufferObj *rb) {
208
0
  (void)img;
209
0
  (void)rb;
210
0
  msSetError(MS_RENDERERERR, "getRasterBufferCopy not implemented",
211
0
             "getRasterBufferCopy()");
212
0
  return MS_FAILURE;
213
0
}
214
215
0
rasterBufferObj *createRasterBufferDummy(int width, int height) {
216
0
  (void)width;
217
0
  (void)height;
218
0
  msSetError(MS_RENDERERERR, "createRasterBuffer not implemented",
219
0
             "createRasterBuffer()");
220
0
  return NULL;
221
0
}
222
223
int mergeRasterBufferDummy(imageObj *dest, rasterBufferObj *overlay,
224
                           double opacity, int srcX, int srcY, int dstX,
225
0
                           int dstY, int width, int height) {
226
0
  (void)dest;
227
0
  (void)overlay;
228
0
  (void)opacity;
229
0
  (void)srcX;
230
0
  (void)srcY;
231
0
  (void)dstX;
232
0
  (void)dstY;
233
0
  (void)width;
234
0
  (void)height;
235
0
  msSetError(MS_RENDERERERR, "mergeRasterBuffer not implemented",
236
0
             "mergeRasterBuffer()");
237
0
  return MS_FAILURE;
238
0
}
239
240
int initializeRasterBufferDummy(rasterBufferObj *rb, int width, int height,
241
0
                                int mode) {
242
0
  (void)rb;
243
0
  (void)width;
244
0
  (void)height;
245
0
  (void)mode;
246
0
  msSetError(MS_RENDERERERR, "initializeRasterBuffer not implemented",
247
0
             "initializeRasterBuffer()");
248
0
  return MS_FAILURE;
249
0
}
250
251
/* image i/o */
252
imageObj *createImageDummy(int width, int height, outputFormatObj *format,
253
0
                           colorObj *bg) {
254
0
  (void)width;
255
0
  (void)height;
256
0
  (void)format;
257
0
  (void)bg;
258
0
  msSetError(MS_RENDERERERR, "createImage not implemented", "createImage()");
259
0
  return NULL;
260
0
}
261
262
int saveImageDummy(imageObj *img, mapObj *map, FILE *fp,
263
0
                   outputFormatObj *format) {
264
0
  (void)img;
265
0
  (void)map;
266
0
  (void)fp;
267
0
  (void)format;
268
0
  msSetError(MS_RENDERERERR, "saveImage not implemented", "saveImage()");
269
0
  return MS_FAILURE;
270
0
}
271
/*...*/
272
273
/* helper functions */
274
int getTruetypeTextBBoxDummy(rendererVTableObj *renderer, char **fonts,
275
                             int numfonts, double size, char *string,
276
                             rectObj *rect, double **advances,
277
0
                             int bAdjustBaseline) {
278
0
  (void)renderer;
279
0
  (void)fonts;
280
0
  (void)numfonts;
281
0
  (void)size;
282
0
  (void)string;
283
0
  (void)rect;
284
0
  (void)advances;
285
0
  (void)bAdjustBaseline;
286
0
  msSetError(MS_RENDERERERR, "getTruetypeTextBBox not implemented",
287
0
             "getTruetypeTextBBox()");
288
0
  return MS_FAILURE;
289
0
}
290
291
0
int startLayerDummy(imageObj *img, mapObj *map, layerObj *layer) {
292
0
  (void)img;
293
0
  (void)map;
294
0
  (void)layer;
295
0
  msSetError(MS_RENDERERERR, "startLayer not implemented", "startLayer()");
296
0
  return MS_FAILURE;
297
0
}
298
299
0
int endLayerDummy(imageObj *img, mapObj *map, layerObj *layer) {
300
0
  (void)img;
301
0
  (void)map;
302
0
  (void)layer;
303
0
  msSetError(MS_RENDERERERR, "endLayer not implemented", "endLayer()");
304
0
  return MS_FAILURE;
305
0
}
306
307
0
int startShapeDummy(imageObj *img, shapeObj *shape) {
308
0
  (void)img;
309
0
  (void)shape;
310
0
  msSetError(MS_RENDERERERR, "startShape not implemented", "startShape()");
311
0
  return MS_FAILURE;
312
0
}
313
314
0
int endShapeDummy(imageObj *img, shapeObj *shape) {
315
0
  (void)img;
316
0
  (void)shape;
317
0
  msSetError(MS_RENDERERERR, "endShape not implemented", "endShape()");
318
0
  return MS_FAILURE;
319
0
}
320
321
0
int setClipDummy(imageObj *img, rectObj clipRect) {
322
0
  (void)img;
323
0
  (void)clipRect;
324
0
  msSetError(MS_RENDERERERR, "setClip not implemented", "setClip()");
325
0
  return MS_FAILURE;
326
0
}
327
0
int resetClipDummy(imageObj *img) {
328
0
  (void)img;
329
0
  msSetError(MS_RENDERERERR, "resetClip not implemented", "resetClip()");
330
0
  return MS_FAILURE;
331
0
}
332
333
0
int freeImageDummy(imageObj *image) {
334
0
  (void)image;
335
0
  msSetError(MS_RENDERERERR, "freeImage not implemented", "freeImage()");
336
0
  return MS_FAILURE;
337
0
}
338
339
0
int freeTileDummy(imageObj *tile) {
340
0
  (void)tile;
341
0
  msSetError(MS_RENDERERERR, "freeTile not implemented", "freeTile()");
342
0
  return MS_FAILURE;
343
0
}
344
345
0
int freeSymbolDummy(symbolObj *symbol) {
346
0
  (void)symbol;
347
0
  msSetError(MS_RENDERERERR, "freeSymbol not implemented", "freeSymbol()");
348
0
  return MS_FAILURE;
349
0
}
350
351
0
int cleanupDummy(void *renderer_data) {
352
0
  (void)renderer_data;
353
0
  return MS_SUCCESS;
354
0
}
355
356
0
int msInitializeDummyRenderer(rendererVTableObj *renderer) {
357
358
0
  renderer->use_imagecache = 0;
359
0
  renderer->supports_pixel_buffer = 0;
360
0
  renderer->compositeRasterBuffer = NULL;
361
0
  renderer->supports_clipping = 0;
362
0
  renderer->supports_svg = 0;
363
0
  renderer->renderer_data = NULL;
364
0
  renderer->transform_mode = MS_TRANSFORM_SIMPLIFY;
365
0
  renderer->startLayer = &startLayerDummy;
366
0
  renderer->endLayer = &endLayerDummy;
367
0
  renderer->renderLine = &renderLineDummy;
368
0
  renderer->renderLineTiled = NULL;
369
0
  renderer->createImage = &createImageDummy;
370
0
  renderer->saveImage = &saveImageDummy;
371
0
  renderer->getRasterBufferHandle = &getRasterBufferHandleDummy;
372
0
  renderer->getRasterBufferCopy = getRasterBufferCopyDummy;
373
0
  renderer->initializeRasterBuffer = initializeRasterBufferDummy;
374
0
  renderer->renderPolygon = &renderPolygonDummy;
375
0
  renderer->freeImage = &freeImageDummy;
376
0
  renderer->renderEllipseSymbol = &renderEllipseSymbolDummy;
377
0
  renderer->renderVectorSymbol = &renderVectorSymbolDummy;
378
0
  renderer->renderPixmapSymbol = &renderPixmapSymbolDummy;
379
0
  renderer->mergeRasterBuffer = &mergeRasterBufferDummy;
380
0
  renderer->renderTile = &renderTileDummy;
381
0
  renderer->renderPolygonTiled = &renderPolygonTiledDummy;
382
0
  renderer->freeSymbol = &freeSymbolDummy;
383
0
  renderer->cleanup = &cleanupDummy;
384
0
  renderer->startShape = NULL;
385
0
  renderer->endShape = NULL;
386
0
  renderer->renderGlyphs = NULL;
387
0
  return MS_SUCCESS;
388
0
}