BRL-CAD
Loading...
Searching...
No Matches
defines.h
Go to the documentation of this file.
1/* D E F I N E S . H
2 * BRL-CAD
3 *
4 * Copyright (c) 1993-2025 United States Government as represented by
5 * the U.S. Army Research Laboratory.
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public License
9 * version 2.1 as published by the Free Software Foundation.
10 *
11 * This library is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this file; see the file named COPYING for more
18 * information.
19 */
20/** @addtogroup libdm */
21/** @{ */
22/** @file dm/defines.h
23 *
24 */
25
26#ifndef DM_DEFINES_H
27#define DM_DEFINES_H
28
29#include "common.h"
30
31#ifndef DM_EXPORT
32# if defined(DM_DLL_EXPORTS) && defined(DM_DLL_IMPORTS)
33# error "Only DM_DLL_EXPORTS or DM_DLL_IMPORTS can be defined, not both."
34# elif defined(DM_DLL_EXPORTS)
35# define DM_EXPORT COMPILER_DLLEXPORT
36# elif defined(DM_DLL_IMPORTS)
37# define DM_EXPORT COMPILER_DLLIMPORT
38# else
39# define DM_EXPORT
40# endif
41#endif
42
43#ifndef FB_EXPORT
44# if defined(FB_DLL_EXPORTS) && defined(FB_DLL_IMPORTS)
45# error "Only FB_DLL_EXPORTS or FB_DLL_IMPORTS can be defined, not both."
46# elif defined(FB_DLL_EXPORTS)
47# define FB_EXPORT COMPILER_DLLEXPORT
48# elif defined(FB_DLL_IMPORTS)
49# define FB_EXPORT COMPILER_DLLIMPORT
50# else
51# define FB_EXPORT
52# endif
53#endif
54
55/* The internals of the dm structure are hidden using the PImpl pattern.
56 *
57 * TODO - see how much of mged_dm could be folded into the generic libdm
58 * display manager. If it has abilities not found in the vanilla DMs that
59 * aren't Tcl specific, seems like they should be generally available... */
60struct dm_impl;
61struct dm {
63 struct dm_impl *i;
64 int64_t start_time; // time of last dm_draw_begin call
65};
66
67struct dm_plugin {
68 uint32_t api_version; /* must be first in struct */
69 const struct dm * const p;
70};
71
72/* The internals of the framebuffer structure are hidden using the PImpl pattern */
73struct fb_impl;
74struct fb {
75 struct fb_impl *i;
76};
77
78struct fb_plugin {
79 const struct fb * const p;
80};
81
82#endif /* DM_DEFINES_H */
83
84/** @} */
85/*
86 * Local Variables:
87 * mode: C
88 * tab-width: 8
89 * indent-tabs-mode: t
90 * c-file-style: "stroustrup"
91 * End:
92 * ex: shiftwidth=4 tabstop=8
93 */
Definition dvec.h:74
Header file for the BRL-CAD common definitions.
uint32_t api_version
Definition defines.h:69
const struct dm *const p
Definition defines.h:70
Definition defines.h:62
uint32_t magic
Definition defines.h:63
struct dm_impl * i
Definition defines.h:64
int64_t start_time
Definition defines.h:65
const struct fb *const p
Definition defines.h:80
Definition defines.h:75
struct fb_impl * i
Definition defines.h:76