b326e53e168cc8378448c5e361af61b950740016
[blender.git] / intern / opensubdiv / opensubdiv_capi_type.h
1 // Copyright 2013 Blender Foundation. All rights reserved.
2 //
3 // This program is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU General Public License
5 // as published by the Free Software Foundation; either version 2
6 // of the License, or (at your option) any later version.
7 //
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with this program; if not, write to the Free Software Foundation,
15 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 //
17 // Author: Sergey Sharybin
18
19 #ifndef OPENSUBDIV_CAPI_TYPES_H_
20 #define OPENSUBDIV_CAPI_TYPES_H_
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 // Keep this a bitmask os it's possible to pass available
27 // evaluators to Blender.
28 typedef enum eOpenSubdivEvaluator {
29   OPENSUBDIV_EVALUATOR_CPU                     = (1 << 0),
30   OPENSUBDIV_EVALUATOR_OPENMP                  = (1 << 1),
31   OPENSUBDIV_EVALUATOR_OPENCL                  = (1 << 2),
32   OPENSUBDIV_EVALUATOR_CUDA                    = (1 << 3),
33   OPENSUBDIV_EVALUATOR_GLSL_TRANSFORM_FEEDBACK = (1 << 4),
34   OPENSUBDIV_EVALUATOR_GLSL_COMPUTE            = (1 << 5),
35 } eOpenSubdivEvaluator;
36
37 typedef enum OpenSubdiv_SchemeType {
38   OSD_SCHEME_BILINEAR,
39   OSD_SCHEME_CATMARK,
40   OSD_SCHEME_LOOP,
41 } OpenSubdiv_SchemeType;
42
43 typedef enum OpenSubdiv_FVarLinearInterpolation {
44   OSD_FVAR_LINEAR_INTERPOLATION_NONE,
45   OSD_FVAR_LINEAR_INTERPOLATION_CORNERS_ONLY,
46   OSD_FVAR_LINEAR_INTERPOLATION_CORNERS_PLUS1,
47   OSD_FVAR_LINEAR_INTERPOLATION_CORNERS_PLUS2,
48   OSD_FVAR_LINEAR_INTERPOLATION_BOUNDARIES,
49   OSD_FVAR_LINEAR_INTERPOLATION_ALL,
50 } OpenSubdiv_FVarLinearInterpolation;
51
52 #ifdef __cplusplus
53 }
54 #endif
55
56 #endif  // OPENSUBDIV_CAPI_TYPES_H_