Gura_ImplementClassMethod(win32_surface, create_printing) { Signal &sig = env.GetSignal(); const char *driverName = nullptr; const char *printerName = arg.GetString(0); char printerNameDefault[MAX_PATH]; BYTE printerInfoBuff[16384]; PRINTER_INFO_2 *pPrinterInfo2 = reinterpret_cast<PRINTER_INFO_2 *>(printerInfoBuff); if (::strcmp(printerName, "") == 0) { DWORD cch = ArraySizeOf(printerNameDefault) - 1; if (!::GetDefaultPrinter(printerNameDefault, &cch)) { sig.SetError(ERR_IOError, "failed to get a default printer"); return Value::Nil; } printerName = printerNameDefault; } do { HANDLE hPrinter = nullptr; if (!::OpenPrinter(const_cast<char *>(printerName), &hPrinter, nullptr)) { sig.SetError(ERR_IOError, "failed to open printer handler"); return Value::Nil; } DWORD cbNeeded = sizeof(printerInfoBuff); if (!::GetPrinter(hPrinter, 2, printerInfoBuff, sizeof(printerInfoBuff), &cbNeeded)) { sig.SetError(ERR_IOError, "failed to get printer information"); return Value::Nil; } ::ClosePrinter(hPrinter); } while (0); double width = arg.GetDouble(1), height = arg.GetDouble(2); RECT rc; rc.left = 0, rc.top = 0; rc.right = static_cast<long>(width * 20); // unit: 1/20pt rc.bottom = static_cast<long>(height * 20); // unit: 1/20pt HDC hdc = ::CreateDC(driverName, printerName, pPrinterInfo2->pPortName, nullptr); DOCINFO di; ::memset(&di, 0x00, sizeof(di)); di.cbSize = sizeof(DOCINFO); di.lpszDocName = "cairo"; ::StartDoc(hdc, &di); ::SetMapMode(hdc, MM_TWIPS); // 1 unit = 1/20pt //::SetMapMode(hdc, MM_HIMETRIC); // 1 unit = 0.01mm Writer_WindowsDC *pWriter = new Writer_WindowsDC(sig, width, height, hdc); cairo_surface_t *surface = ::cairo_win32_printing_surface_create(hdc); Object_surface *pObjSurface = new Object_win32_surface(surface, pWriter); return ReturnValue(env, arg, Value(pObjSurface)); }
char GetEscaped(char ch) { static const struct { char ch; char chConv; } tbl[] = { { 'a', '\a' }, { 'b', '\b' }, { 'f', '\f' }, { 'n', '\n' }, { 'r', '\r' }, { 't', '\t' }, { 'v', '\v' }, { '\\', '\\' }, { '\'', '\'' }, { '"', '"' }, }; for (size_t i = 0; i < ArraySizeOf(tbl); i++) { if (tbl[i].ch == ch) return tbl[i].chConv; } return ch; }
void PrepareParamInfoDict() { _pParamInfoDict = new ParamInfoDict(); static const struct { GLenum pname; size_t n; } tbl[] = { #if defined(GL_ACCUM_ALPHA_BITS) { GL_ACCUM_ALPHA_BITS, 1 }, #endif #if defined(GL_ACCUM_BLUE_BITS) { GL_ACCUM_BLUE_BITS, 1 }, #endif #if defined(GL_ACCUM_CLEAR_VALUE) { GL_ACCUM_CLEAR_VALUE, 4 }, #endif #if defined(GL_ACCUM_GREEN_BITS) { GL_ACCUM_GREEN_BITS, 1 }, #endif #if defined(GL_ACCUM_RED_BITS) { GL_ACCUM_RED_BITS, 1 }, #endif #if defined(GL_ACTIVE_ATTRIBUTES) { GL_ACTIVE_ATTRIBUTES, 1 }, #endif #if defined(GL_ACTIVE_ATTRIBUTE_MAX_LENGTH) { GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, 1 }, #endif #if defined(GL_ACTIVE_TEXTURE) { GL_ACTIVE_TEXTURE, 1 }, #endif #if defined(GL_ACTIVE_UNIFORMS) { GL_ACTIVE_UNIFORMS, 1 }, #endif #if defined(GL_ACTIVE_UNIFORM_MAX_LENGTH) { GL_ACTIVE_UNIFORM_MAX_LENGTH, 1 }, #endif #if defined(GL_ALIASED_LINE_WIDTH_RANGE) { GL_ALIASED_LINE_WIDTH_RANGE, 2 }, #endif #if defined(GL_ALIASED_POINT_SIZE_RANGE) { GL_ALIASED_POINT_SIZE_RANGE, 2 }, #endif #if defined(GL_ALPHA_BIAS) { GL_ALPHA_BIAS, 1 }, #endif #if defined(GL_ALPHA_BITS) { GL_ALPHA_BITS, 1 }, #endif #if defined(GL_ALPHA_SCALE) { GL_ALPHA_SCALE, 1 }, #endif #if defined(GL_ALPHA_TEST) { GL_ALPHA_TEST, 1 }, #endif #if defined(GL_ALPHA_TEST_REF) { GL_ALPHA_TEST_REF, 1 }, #endif #if defined(GL_AMBIENT) { GL_AMBIENT, 4 }, #endif #if defined(GL_ARRAY_BUFFER_BINDING) { GL_ARRAY_BUFFER_BINDING, 1 }, #endif #if defined(GL_ATTACHED_SHADERS) { GL_ATTACHED_SHADERS, 1 }, #endif #if defined(GL_ATTRIB_STACK_DEPTH) { GL_ATTRIB_STACK_DEPTH, 1 }, #endif #if defined(GL_AUTO_NORMAL) { GL_AUTO_NORMAL, 1 }, #endif #if defined(GL_AUX_BUFFERS) { GL_AUX_BUFFERS, 1 }, #endif #if defined(GL_BLEND) { GL_BLEND, 1 }, #endif #if defined(GL_BLEND_COLOR) { GL_BLEND_COLOR, 4 }, #endif #if defined(GL_BLEND_DST_ALPHA) { GL_BLEND_DST_ALPHA, 1 }, #endif #if defined(GL_BLEND_DST_RGB) { GL_BLEND_DST_RGB, 1 }, #endif #if defined(GL_BLEND_EQUATION_ALPHA) { GL_BLEND_EQUATION_ALPHA, 1 }, #endif #if defined(GL_BLEND_EQUATION_RGB) { GL_BLEND_EQUATION_RGB, 1 }, #endif #if defined(GL_BLEND_SRC_ALPHA) { GL_BLEND_SRC_ALPHA, 1 }, #endif #if defined(GL_BLEND_SRC_RGB) { GL_BLEND_SRC_RGB, 1 }, #endif #if defined(GL_BLUE_BIAS) { GL_BLUE_BIAS, 1 }, #endif #if defined(GL_BLUE_BITS) { GL_BLUE_BITS, 1 }, #endif #if defined(GL_BLUE_SCALE) { GL_BLUE_SCALE, 1 }, #endif #if defined(GL_CLIENT_ACTIVE_TEXTURE) { GL_CLIENT_ACTIVE_TEXTURE, 1 }, #endif #if defined(GL_CLIENT_ATTRIB_STACK_DEPTH) { GL_CLIENT_ATTRIB_STACK_DEPTH, 1 }, #endif //#if defined(GL_CLIP_PLANEi) // { GL_CLIP_PLANEi, 1 }, //#endif #if defined(GL_COLOR_ARRAY) { GL_COLOR_ARRAY, 1 }, #endif #if defined(GL_COLOR_ARRAY_BUFFER_BINDING) { GL_COLOR_ARRAY_BUFFER_BINDING, 1 }, #endif #if defined(GL_COLOR_ARRAY_SIZE) { GL_COLOR_ARRAY_SIZE, 1 }, #endif #if defined(GL_COLOR_ARRAY_STRIDE) { GL_COLOR_ARRAY_STRIDE, 1 }, #endif #if defined(GL_COLOR_ARRAY_TYPE) { GL_COLOR_ARRAY_TYPE, 1 }, #endif #if defined(GL_COLOR_CLEAR_VALUE) { GL_COLOR_CLEAR_VALUE, 4 }, #endif #if defined(GL_COLOR_INDEXES) { GL_COLOR_INDEXES, 3 }, #endif #if defined(GL_COLOR_LOGIC_OP) { GL_COLOR_LOGIC_OP, 1 }, #endif #if defined(GL_COLOR_MATERIAL) { GL_COLOR_MATERIAL, 1 }, #endif #if defined(GL_COLOR_MATERIAL_FACE) { GL_COLOR_MATERIAL_FACE, 1 }, #endif #if defined(GL_COLOR_MATERIAL_PARAMETER) { GL_COLOR_MATERIAL_PARAMETER, 1 }, #endif #if defined(GL_COLOR_MATRIX) { GL_COLOR_MATRIX, 16 }, #endif #if defined(GL_COLOR_MATRIX_STACK_DEPTH) { GL_COLOR_MATRIX_STACK_DEPTH, 1 }, #endif #if defined(GL_COLOR_SUM) { GL_COLOR_SUM, 1 }, #endif #if defined(GL_COLOR_TABLE) { GL_COLOR_TABLE, 1 }, #endif #if defined(GL_COLOR_TABLE_ALPHA_SIZE) { GL_COLOR_TABLE_ALPHA_SIZE, 1 }, #endif #if defined(GL_COLOR_TABLE_BIAS) { GL_COLOR_TABLE_BIAS, 4 }, #endif #if defined(GL_COLOR_TABLE_BLUE_SIZE) { GL_COLOR_TABLE_BLUE_SIZE, 1 }, #endif #if defined(GL_COLOR_TABLE_FORMAT) { GL_COLOR_TABLE_FORMAT, 1 }, #endif #if defined(GL_COLOR_TABLE_GREEN_SIZE) { GL_COLOR_TABLE_GREEN_SIZE, 1 }, #endif #if defined(GL_COLOR_TABLE_INTENSITY_SIZE) { GL_COLOR_TABLE_INTENSITY_SIZE, 1 }, #endif #if defined(GL_COLOR_TABLE_LUMINANCE_SIZE) { GL_COLOR_TABLE_LUMINANCE_SIZE, 1 }, #endif #if defined(GL_COLOR_TABLE_RED_SIZE) { GL_COLOR_TABLE_RED_SIZE, 1 }, #endif #if defined(GL_COLOR_TABLE_SCALE) { GL_COLOR_TABLE_SCALE, 4 }, #endif #if defined(GL_COLOR_TABLE_WIDTH) { GL_COLOR_TABLE_WIDTH, 1 }, #endif #if defined(GL_COLOR_WRITEMASK) { GL_COLOR_WRITEMASK, 4 }, #endif #if defined(GL_COMBINE_ALPHA) { GL_COMBINE_ALPHA, 1 }, #endif #if defined(GL_COMBINE_RGB) { GL_COMBINE_RGB, 1 }, #endif #if defined(GL_COMPILE_STATUS) { GL_COMPILE_STATUS, 1 }, #endif #if defined(GL_COMPRESSED_TEXTURE_FORMATS) { GL_COMPRESSED_TEXTURE_FORMATS, 99 }, #endif #if defined(GL_CONSTANT_ATTENUATION) { GL_CONSTANT_ATTENUATION, 1 }, #endif #if defined(GL_CONVOLUTION_1D) { GL_CONVOLUTION_1D, 1 }, #endif #if defined(GL_CONVOLUTION_2D) { GL_CONVOLUTION_2D, 1 }, #endif #if defined(GL_CONVOLUTION_BORDER_COLOR) { GL_CONVOLUTION_BORDER_COLOR, 4 }, #endif #if defined(GL_CONVOLUTION_BORDER_MODE) { GL_CONVOLUTION_BORDER_MODE, 1 }, #endif #if defined(GL_CONVOLUTION_FILTER_BIAS) { GL_CONVOLUTION_FILTER_BIAS, 4 }, #endif #if defined(GL_CONVOLUTION_FILTER_SCALE) { GL_CONVOLUTION_FILTER_SCALE, 4 }, #endif #if defined(GL_CONVOLUTION_FORMAT) { GL_CONVOLUTION_FORMAT, 1 }, #endif #if defined(GL_CONVOLUTION_HEIGHT) { GL_CONVOLUTION_HEIGHT, 1 }, #endif #if defined(GL_CONVOLUTION_WIDTH) { GL_CONVOLUTION_WIDTH, 1 }, #endif #if defined(GL_COORD_REPLACE) { GL_COORD_REPLACE, 1 }, #endif #if defined(GL_CULL_FACE) { GL_CULL_FACE, 1 }, #endif #if defined(GL_CULL_FACE_MODE) { GL_CULL_FACE_MODE, 1 }, #endif #if defined(GL_CURRENT_COLOR) { GL_CURRENT_COLOR, 4 }, #endif #if defined(GL_CURRENT_FOG_COORD) { GL_CURRENT_FOG_COORD, 1 }, #endif #if defined(GL_CURRENT_INDEX) { GL_CURRENT_INDEX, 1 }, #endif #if defined(GL_CURRENT_NORMAL) { GL_CURRENT_NORMAL, 3 }, #endif #if defined(GL_CURRENT_PROGRAM) { GL_CURRENT_PROGRAM, 1 }, #endif #if defined(GL_CURRENT_QUERY) { GL_CURRENT_QUERY, 1 }, #endif #if defined(GL_CURRENT_RASTER_COLOR) { GL_CURRENT_RASTER_COLOR, 4 }, #endif #if defined(GL_CURRENT_RASTER_DISTANCE) { GL_CURRENT_RASTER_DISTANCE, 1 }, #endif #if defined(GL_CURRENT_RASTER_INDEX) { GL_CURRENT_RASTER_INDEX, 1 }, #endif #if defined(GL_CURRENT_RASTER_POSITION) { GL_CURRENT_RASTER_POSITION, 4 }, #endif #if defined(GL_CURRENT_RASTER_POSITION_VALID) { GL_CURRENT_RASTER_POSITION_VALID, 1 }, #endif #if defined(GL_CURRENT_RASTER_SECONDARY_COLOR) { GL_CURRENT_RASTER_SECONDARY_COLOR, 4 }, #endif #if defined(GL_CURRENT_RASTER_TEXTURE_COORDS) { GL_CURRENT_RASTER_TEXTURE_COORDS, 4 }, #endif #if defined(GL_CURRENT_SECONDARY_COLOR) { GL_CURRENT_SECONDARY_COLOR, 4 }, #endif #if defined(GL_CURRENT_TEXTURE_COORDS) { GL_CURRENT_TEXTURE_COORDS, 4 }, #endif #if defined(GL_DELETE_STATUS) { GL_DELETE_STATUS, 1 }, #endif #if defined(GL_DEPTH_BIAS) { GL_DEPTH_BIAS, 1 }, #endif #if defined(GL_DEPTH_BITS) { GL_DEPTH_BITS, 1 }, #endif #if defined(GL_DEPTH_CLEAR_VALUE) { GL_DEPTH_CLEAR_VALUE, 1 }, #endif #if defined(GL_DEPTH_FUNC) { GL_DEPTH_FUNC, 1 }, #endif #if defined(GL_DEPTH_RANGE) { GL_DEPTH_RANGE, 2 }, #endif #if defined(GL_DEPTH_SCALE) { GL_DEPTH_SCALE, 1 }, #endif #if defined(GL_DEPTH_TEST) { GL_DEPTH_TEST, 1 }, #endif #if defined(GL_DEPTH_TEXTURE_MODE) { GL_DEPTH_TEXTURE_MODE, 1 }, #endif #if defined(GL_DEPTH_WRITEMASK) { GL_DEPTH_WRITEMASK, 1 }, #endif #if defined(GL_DIFFUSE) { GL_DIFFUSE, 4 }, #endif #if defined(GL_DITHER) { GL_DITHER, 1 }, #endif #if defined(GL_DOUBLEBUFFER) { GL_DOUBLEBUFFER, 1 }, #endif #if defined(GL_DRAW_BUFFER) { GL_DRAW_BUFFER, 1 }, #endif //#if defined(GL_DRAW_BUFFERi) // { GL_DRAW_BUFFERi, 1 }, //#endif #if defined(GL_EDGE_FLAG) { GL_EDGE_FLAG, 1 }, #endif #if defined(GL_EDGE_FLAG_ARRAY) { GL_EDGE_FLAG_ARRAY, 1 }, #endif #if defined(GL_EDGE_FLAG_ARRAY_BUFFER_BINDING) { GL_EDGE_FLAG_ARRAY_BUFFER_BINDING, 1 }, #endif #if defined(GL_EDGE_FLAG_ARRAY_STRIDE) { GL_EDGE_FLAG_ARRAY_STRIDE, 1 }, #endif #if defined(GL_ELEMENT_ARRAY_BUFFER_BINDING) { GL_ELEMENT_ARRAY_BUFFER_BINDING, 1 }, #endif #if defined(GL_EMISSION) { GL_EMISSION, 4 }, #endif #if defined(GL_EYE_PLANE) { GL_EYE_PLANE, 1 }, #endif #if defined(GL_FEEDBACK_BUFFER_SIZE) { GL_FEEDBACK_BUFFER_SIZE, 1 }, #endif #if defined(GL_FEEDBACK_BUFFER_TYPE) { GL_FEEDBACK_BUFFER_TYPE, 1 }, #endif #if defined(GL_FOG) { GL_FOG, 1 }, #endif #if defined(GL_FOG_COLOR) { GL_FOG_COLOR, 4 }, #endif #if defined(GL_FOG_COORD_ARRAY) { GL_FOG_COORD_ARRAY, 1 }, #endif #if defined(GL_FOG_COORD_ARRAY_BUFFER_BINDING) { GL_FOG_COORD_ARRAY_BUFFER_BINDING, 1 }, #endif #if defined(GL_FOG_COORD_ARRAY_STRIDE) { GL_FOG_COORD_ARRAY_STRIDE, 1 }, #endif #if defined(GL_FOG_COORD_ARRAY_TYPE) { GL_FOG_COORD_ARRAY_TYPE, 1 }, #endif #if defined(GL_FOG_COORD_SRC) { GL_FOG_COORD_SRC, 1 }, #endif #if defined(GL_FOG_DENSITY) { GL_FOG_DENSITY, 1 }, #endif #if defined(GL_FOG_END) { GL_FOG_END, 1 }, #endif #if defined(GL_FOG_HINT) { GL_FOG_HINT, 1 }, #endif #if defined(GL_FOG_INDEX) { GL_FOG_INDEX, 1 }, #endif #if defined(GL_FOG_MODE) { GL_FOG_MODE, 1 }, #endif #if defined(GL_FOG_START) { GL_FOG_START, 1 }, #endif #if defined(GL_FRAGMENT_SHADER_DERIVATIVE_HINT) { GL_FRAGMENT_SHADER_DERIVATIVE_HINT, 1 }, #endif #if defined(GL_FRONT_FACE) { GL_FRONT_FACE, 1 }, #endif #if defined(GL_GENERATE_MIPMAP) { GL_GENERATE_MIPMAP, 1 }, #endif #if defined(GL_GENERATE_MIPMAP_HINT) { GL_GENERATE_MIPMAP_HINT, 1 }, #endif #if defined(GL_GREEN_BIAS) { GL_GREEN_BIAS, 1 }, #endif #if defined(GL_GREEN_BITS) { GL_GREEN_BITS, 1 }, #endif #if defined(GL_GREEN_SCALE) { GL_GREEN_SCALE, 1 }, #endif #if defined(GL_HISTOGRAM) { GL_HISTOGRAM, 1 }, #endif #if defined(GL_HISTOGRAM_ALPHA_SIZE) { GL_HISTOGRAM_ALPHA_SIZE, 1 }, #endif #if defined(GL_HISTOGRAM_BLUE_SIZE) { GL_HISTOGRAM_BLUE_SIZE, 1 }, #endif #if defined(GL_HISTOGRAM_FORMAT) { GL_HISTOGRAM_FORMAT, 1 }, #endif #if defined(GL_HISTOGRAM_GREEN_SIZE) { GL_HISTOGRAM_GREEN_SIZE, 1 }, #endif #if defined(GL_HISTOGRAM_LUMINANCE_SIZE) { GL_HISTOGRAM_LUMINANCE_SIZE, 1 }, #endif #if defined(GL_HISTOGRAM_RED_SIZE) { GL_HISTOGRAM_RED_SIZE, 1 }, #endif #if defined(GL_HISTOGRAM_SINK) { GL_HISTOGRAM_SINK, 1 }, #endif #if defined(GL_HISTOGRAM_WIDTH) { GL_HISTOGRAM_WIDTH, 1 }, #endif #if defined(GL_INDEX_ARRAY) { GL_INDEX_ARRAY, 1 }, #endif #if defined(GL_INDEX_ARRAY_BUFFER_BINDING) { GL_INDEX_ARRAY_BUFFER_BINDING, 1 }, #endif #if defined(GL_INDEX_ARRAY_STRIDE) { GL_INDEX_ARRAY_STRIDE, 1 }, #endif #if defined(GL_INDEX_ARRAY_TYPE) { GL_INDEX_ARRAY_TYPE, 1 }, #endif #if defined(GL_INDEX_BITS) { GL_INDEX_BITS, 1 }, #endif #if defined(GL_INDEX_CLEAR_VALUE) { GL_INDEX_CLEAR_VALUE, 1 }, #endif #if defined(GL_INDEX_LOGIC_OP) { GL_INDEX_LOGIC_OP, 1 }, #endif #if defined(GL_INDEX_MODE) { GL_INDEX_MODE, 1 }, #endif #if defined(GL_INDEX_OFFSET) { GL_INDEX_OFFSET, 1 }, #endif #if defined(GL_INDEX_SHIFT) { GL_INDEX_SHIFT, 1 }, #endif #if defined(GL_INDEX_WRITEMASK) { GL_INDEX_WRITEMASK, 1 }, #endif #if defined(GL_INFO_LOG_LENGTH) { GL_INFO_LOG_LENGTH, 1 }, #endif #if defined(GL_LIGHTING) { GL_LIGHTING, 1 }, #endif #if defined(GL_LIGHT_MODEL_AMBIENT) { GL_LIGHT_MODEL_AMBIENT, 4 }, #endif #if defined(GL_LIGHT_MODEL_COLOR_CONTROL) { GL_LIGHT_MODEL_COLOR_CONTROL, 1 }, #endif #if defined(GL_LIGHT_MODEL_LOCAL_VIEWER) { GL_LIGHT_MODEL_LOCAL_VIEWER, 1 }, #endif #if defined(GL_LIGHT_MODEL_TWO_SIDE) { GL_LIGHT_MODEL_TWO_SIDE, 1 }, #endif //#if defined(GL_LIGHTi) // { GL_LIGHTi, 1 }, //#endif #if defined(GL_LINEAR_ATTENUATION) { GL_LINEAR_ATTENUATION, 1 }, #endif #if defined(GL_LINE_SMOOTH) { GL_LINE_SMOOTH, 1 }, #endif #if defined(GL_LINE_SMOOTH_HINT) { GL_LINE_SMOOTH_HINT, 1 }, #endif #if defined(GL_LINE_STIPPLE) { GL_LINE_STIPPLE, 1 }, #endif #if defined(GL_LINE_STIPPLE_PATTERN) { GL_LINE_STIPPLE_PATTERN, 1 }, #endif #if defined(GL_LINE_STIPPLE_REPEAT) { GL_LINE_STIPPLE_REPEAT, 1 }, #endif #if defined(GL_LINE_WIDTH) { GL_LINE_WIDTH, 1 }, #endif #if defined(GL_LINE_WIDTH_GRANULARITY) { GL_LINE_WIDTH_GRANULARITY, 1 }, #endif #if defined(GL_LINE_WIDTH_RANGE) { GL_LINE_WIDTH_RANGE, 2 }, #endif #if defined(GL_LINK_STATUS) { GL_LINK_STATUS, 1 }, #endif #if defined(GL_LIST_BASE) { GL_LIST_BASE, 1 }, #endif #if defined(GL_LIST_INDEX) { GL_LIST_INDEX, 1 }, #endif #if defined(GL_LIST_MODE) { GL_LIST_MODE, 1 }, #endif #if defined(GL_LOGIC_OP_MODE) { GL_LOGIC_OP_MODE, 1 }, #endif #if defined(GL_MAP1_COLOR_4) { GL_MAP1_COLOR_4, 1 }, #endif #if defined(GL_MAP1_GRID_DOMAIN) { GL_MAP1_GRID_DOMAIN, 2 }, #endif #if defined(GL_MAP1_GRID_SEGMENTS) { GL_MAP1_GRID_SEGMENTS, 1 }, #endif #if defined(GL_MAP1_INDEX) { GL_MAP1_INDEX, 1 }, #endif #if defined(GL_MAP1_NORMAL) { GL_MAP1_NORMAL, 1 }, #endif #if defined(GL_MAP1_TEXTURE_COORD_1) { GL_MAP1_TEXTURE_COORD_1, 1 }, #endif #if defined(GL_MAP1_TEXTURE_COORD_2) { GL_MAP1_TEXTURE_COORD_2, 1 }, #endif #if defined(GL_MAP1_TEXTURE_COORD_3) { GL_MAP1_TEXTURE_COORD_3, 1 }, #endif #if defined(GL_MAP1_TEXTURE_COORD_4) { GL_MAP1_TEXTURE_COORD_4, 1 }, #endif #if defined(GL_MAP1_VERTEX_3) { GL_MAP1_VERTEX_3, 1 }, #endif #if defined(GL_MAP1_VERTEX_4) { GL_MAP1_VERTEX_4, 1 }, #endif #if defined(GL_MAP2_COLOR_4) { GL_MAP2_COLOR_4, 1 }, #endif #if defined(GL_MAP2_GRID_DOMAIN) { GL_MAP2_GRID_DOMAIN, 4 }, #endif #if defined(GL_MAP2_GRID_SEGMENTS) { GL_MAP2_GRID_SEGMENTS, 2 }, #endif #if defined(GL_MAP2_INDEX) { GL_MAP2_INDEX, 1 }, #endif #if defined(GL_MAP2_NORMAL) { GL_MAP2_NORMAL, 1 }, #endif #if defined(GL_MAP2_TEXTURE_COORD_1) { GL_MAP2_TEXTURE_COORD_1, 1 }, #endif #if defined(GL_MAP2_TEXTURE_COORD_2) { GL_MAP2_TEXTURE_COORD_2, 1 }, #endif #if defined(GL_MAP2_TEXTURE_COORD_3) { GL_MAP2_TEXTURE_COORD_3, 1 }, #endif #if defined(GL_MAP2_TEXTURE_COORD_4) { GL_MAP2_TEXTURE_COORD_4, 1 }, #endif #if defined(GL_MAP2_VERTEX_3) { GL_MAP2_VERTEX_3, 1 }, #endif #if defined(GL_MAP2_VERTEX_4) { GL_MAP2_VERTEX_4, 1 }, #endif #if defined(GL_MAP_COLOR) { GL_MAP_COLOR, 1 }, #endif #if defined(GL_MAP_STENCIL) { GL_MAP_STENCIL, 1 }, #endif #if defined(GL_MATRIX_MODE) { GL_MATRIX_MODE, 1 }, #endif #if defined(GL_MAX_3D_TEXTURE_SIZE) { GL_MAX_3D_TEXTURE_SIZE, 1 }, #endif #if defined(GL_MAX_ATTRIB_STACK_DEPTH) { GL_MAX_ATTRIB_STACK_DEPTH, 1 }, #endif #if defined(GL_MAX_CLIENT_ATTRIB_STACK_DEPTH) { GL_MAX_CLIENT_ATTRIB_STACK_DEPTH, 1 }, #endif #if defined(GL_MAX_CLIP_PLANES) { GL_MAX_CLIP_PLANES, 1 }, #endif #if defined(GL_MAX_COLOR_MATRIX_STACK_DEPTH) { GL_MAX_COLOR_MATRIX_STACK_DEPTH, 1 }, #endif #if defined(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS) { GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, 1 }, #endif #if defined(GL_MAX_CONVOLUTION_HEIGHT) { GL_MAX_CONVOLUTION_HEIGHT, 1 }, #endif #if defined(GL_MAX_CONVOLUTION_WIDTH) { GL_MAX_CONVOLUTION_WIDTH, 1 }, #endif #if defined(GL_MAX_CUBE_MAP_TEXTURE_SIZE) { GL_MAX_CUBE_MAP_TEXTURE_SIZE, 1 }, #endif #if defined(GL_MAX_DRAW_BUFFERS) { GL_MAX_DRAW_BUFFERS, 1 }, #endif #if defined(GL_MAX_ELEMENTS_INDICES) { GL_MAX_ELEMENTS_INDICES, 1 }, #endif #if defined(GL_MAX_ELEMENTS_VERTICES) { GL_MAX_ELEMENTS_VERTICES, 1 }, #endif #if defined(GL_MAX_EVAL_ORDER) { GL_MAX_EVAL_ORDER, 1 }, #endif #if defined(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS) { GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, 1 }, #endif #if defined(GL_MAX_LIGHTS) { GL_MAX_LIGHTS, 1 }, #endif #if defined(GL_MAX_LIST_NESTING) { GL_MAX_LIST_NESTING, 1 }, #endif #if defined(GL_MAX_MODELVIEW_STACK_DEPTH) { GL_MAX_MODELVIEW_STACK_DEPTH, 1 }, #endif #if defined(GL_MAX_NAME_STACK_DEPTH) { GL_MAX_NAME_STACK_DEPTH, 1 }, #endif #if defined(GL_MAX_PIXEL_MAP_TABLE) { GL_MAX_PIXEL_MAP_TABLE, 1 }, #endif #if defined(GL_MAX_PROJECTION_STACK_DEPTH) { GL_MAX_PROJECTION_STACK_DEPTH, 1 }, #endif #if defined(GL_MAX_TEXTURE_COORDS) { GL_MAX_TEXTURE_COORDS, 1 }, #endif #if defined(GL_MAX_TEXTURE_IMAGE_UNITS) { GL_MAX_TEXTURE_IMAGE_UNITS, 1 }, #endif #if defined(GL_MAX_TEXTURE_LOD_BIAS) { GL_MAX_TEXTURE_LOD_BIAS, 1 }, #endif #if defined(GL_MAX_TEXTURE_SIZE) { GL_MAX_TEXTURE_SIZE, 1 }, #endif #if defined(GL_MAX_TEXTURE_STACK_DEPTH) { GL_MAX_TEXTURE_STACK_DEPTH, 1 }, #endif #if defined(GL_MAX_TEXTURE_UNITS) { GL_MAX_TEXTURE_UNITS, 1 }, #endif #if defined(GL_MAX_VARYING_FLOATS) { GL_MAX_VARYING_FLOATS, 1 }, #endif #if defined(GL_MAX_VERTEX_ATTRIBS) { GL_MAX_VERTEX_ATTRIBS, 1 }, #endif #if defined(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS) { GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS, 1 }, #endif #if defined(GL_MAX_VERTEX_UNIFORM_COMPONENTS) { GL_MAX_VERTEX_UNIFORM_COMPONENTS, 1 }, #endif #if defined(GL_MAX_VIEWPORT_DIMS) { GL_MAX_VIEWPORT_DIMS, 2 }, #endif #if defined(GL_MINMAX) { GL_MINMAX, 1 }, #endif #if defined(GL_MINMAX_FORMAT) { GL_MINMAX_FORMAT, 1 }, #endif #if defined(GL_MINMAX_SINK) { GL_MINMAX_SINK, 1 }, #endif #if defined(GL_MODELVIEW_MATRIX) { GL_MODELVIEW_MATRIX, 16 }, #endif #if defined(GL_MODELVIEW_STACK_DEPTH) { GL_MODELVIEW_STACK_DEPTH, 1 }, #endif #if defined(GL_NAME_STACK_DEPTH) { GL_NAME_STACK_DEPTH, 1 }, #endif #if defined(GL_NORMALIZE) { GL_NORMALIZE, 1 }, #endif #if defined(GL_NORMAL_ARRAY) { GL_NORMAL_ARRAY, 1 }, #endif #if defined(GL_NORMAL_ARRAY_BUFFER_BINDING) { GL_NORMAL_ARRAY_BUFFER_BINDING, 1 }, #endif #if defined(GL_NORMAL_ARRAY_STRIDE) { GL_NORMAL_ARRAY_STRIDE, 1 }, #endif #if defined(GL_NORMAL_ARRAY_TYPE) { GL_NORMAL_ARRAY_TYPE, 1 }, #endif #if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) { GL_NUM_COMPRESSED_TEXTURE_FORMATS, 1 }, #endif #if defined(GL_OBJECT_PLANE) { GL_OBJECT_PLANE, 1 }, #endif #if defined(GL_OPERAND0_ALPHA) { GL_OPERAND0_ALPHA, 1 }, #endif #if defined(GL_OPERAND0_RGB) { GL_OPERAND0_RGB, 1 }, #endif #if defined(GL_OPERAND1_ALPHA) { GL_OPERAND1_ALPHA, 1 }, #endif #if defined(GL_OPERAND1_RGB) { GL_OPERAND1_RGB, 1 }, #endif #if defined(GL_OPERAND2_ALPHA) { GL_OPERAND2_ALPHA, 1 }, #endif #if defined(GL_OPERAND2_RGB) { GL_OPERAND2_RGB, 1 }, #endif #if defined(GL_PACK_ALIGNMENT) { GL_PACK_ALIGNMENT, 1 }, #endif #if defined(GL_PACK_IMAGE_HEIGHT) { GL_PACK_IMAGE_HEIGHT, 1 }, #endif #if defined(GL_PACK_LSB_FIRST) { GL_PACK_LSB_FIRST, 1 }, #endif #if defined(GL_PACK_ROW_LENGTH) { GL_PACK_ROW_LENGTH, 1 }, #endif #if defined(GL_PACK_SKIP_IMAGES) { GL_PACK_SKIP_IMAGES, 1 }, #endif #if defined(GL_PACK_SKIP_PIXELS) { GL_PACK_SKIP_PIXELS, 1 }, #endif #if defined(GL_PACK_SKIP_ROWS) { GL_PACK_SKIP_ROWS, 1 }, #endif #if defined(GL_PACK_SWAP_BYTES) { GL_PACK_SWAP_BYTES, 1 }, #endif #if defined(GL_PERSPECTIVE_CORRECTION_HINT) { GL_PERSPECTIVE_CORRECTION_HINT, 1 }, #endif #if defined(GL_PIXEL_MAP_A_TO_A_SIZE) { GL_PIXEL_MAP_A_TO_A_SIZE, 1 }, #endif #if defined(GL_PIXEL_MAP_B_TO_B_SIZE) { GL_PIXEL_MAP_B_TO_B_SIZE, 1 }, #endif #if defined(GL_PIXEL_MAP_G_TO_G_SIZE) { GL_PIXEL_MAP_G_TO_G_SIZE, 1 }, #endif #if defined(GL_PIXEL_MAP_I_TO_A_SIZE) { GL_PIXEL_MAP_I_TO_A_SIZE, 1 }, #endif #if defined(GL_PIXEL_MAP_I_TO_B_SIZE) { GL_PIXEL_MAP_I_TO_B_SIZE, 1 }, #endif #if defined(GL_PIXEL_MAP_I_TO_G_SIZE) { GL_PIXEL_MAP_I_TO_G_SIZE, 1 }, #endif #if defined(GL_PIXEL_MAP_I_TO_I_SIZE) { GL_PIXEL_MAP_I_TO_I_SIZE, 1 }, #endif #if defined(GL_PIXEL_MAP_I_TO_R_SIZE) { GL_PIXEL_MAP_I_TO_R_SIZE, 1 }, #endif #if defined(GL_PIXEL_MAP_R_TO_R_SIZE) { GL_PIXEL_MAP_R_TO_R_SIZE, 1 }, #endif #if defined(GL_PIXEL_MAP_S_TO_S_SIZE) { GL_PIXEL_MAP_S_TO_S_SIZE, 1 }, #endif #if defined(GL_PIXEL_PACK_BUFFER_BINDING) { GL_PIXEL_PACK_BUFFER_BINDING, 1 }, #endif #if defined(GL_PIXEL_UNPACK_BUFFER_BINDING) { GL_PIXEL_UNPACK_BUFFER_BINDING, 1 }, #endif #if defined(GL_POINT_DISTANCE_ATTENUATION) { GL_POINT_DISTANCE_ATTENUATION, 3 }, #endif #if defined(GL_POINT_FADE_THRESHOLD_SIZE) { GL_POINT_FADE_THRESHOLD_SIZE, 1 }, #endif #if defined(GL_POINT_SIZE) { GL_POINT_SIZE, 1 }, #endif #if defined(GL_POINT_SIZE_GRANULARITY) { GL_POINT_SIZE_GRANULARITY, 1 }, #endif #if defined(GL_POINT_SIZE_MAX) { GL_POINT_SIZE_MAX, 1 }, #endif #if defined(GL_POINT_SIZE_MIN) { GL_POINT_SIZE_MIN, 1 }, #endif #if defined(GL_POINT_SIZE_RANGE) { GL_POINT_SIZE_RANGE, 2 }, #endif #if defined(GL_POINT_SMOOTH) { GL_POINT_SMOOTH, 1 }, #endif #if defined(GL_POINT_SMOOTH_HINT) { GL_POINT_SMOOTH_HINT, 1 }, #endif #if defined(GL_POINT_SPRITE) { GL_POINT_SPRITE, 1 }, #endif #if defined(GL_POLYGON_MODE) { GL_POLYGON_MODE, 2 }, #endif #if defined(GL_POLYGON_OFFSET_FACTOR) { GL_POLYGON_OFFSET_FACTOR, 1 }, #endif #if defined(GL_POLYGON_OFFSET_FILL) { GL_POLYGON_OFFSET_FILL, 1 }, #endif #if defined(GL_POLYGON_OFFSET_LINE) { GL_POLYGON_OFFSET_LINE, 1 }, #endif #if defined(GL_POLYGON_OFFSET_POINT) { GL_POLYGON_OFFSET_POINT, 1 }, #endif #if defined(GL_POLYGON_OFFSET_UNITS) { GL_POLYGON_OFFSET_UNITS, 1 }, #endif #if defined(GL_POLYGON_SMOOTH) { GL_POLYGON_SMOOTH, 1 }, #endif #if defined(GL_POLYGON_SMOOTH_HINT) { GL_POLYGON_SMOOTH_HINT, 1 }, #endif #if defined(GL_POLYGON_STIPPLE) { GL_POLYGON_STIPPLE, 1 }, #endif #if defined(GL_POSITION) { GL_POSITION, 4 }, #endif #if defined(GL_POST_COLOR_MATRIX_ALPHA_BIAS) { GL_POST_COLOR_MATRIX_ALPHA_BIAS, 1 }, #endif #if defined(GL_POST_COLOR_MATRIX_ALPHA_SCALE) { GL_POST_COLOR_MATRIX_ALPHA_SCALE, 1 }, #endif #if defined(GL_POST_COLOR_MATRIX_BLUE_BIAS) { GL_POST_COLOR_MATRIX_BLUE_BIAS, 1 }, #endif #if defined(GL_POST_COLOR_MATRIX_BLUE_SCALE) { GL_POST_COLOR_MATRIX_BLUE_SCALE, 1 }, #endif #if defined(GL_POST_COLOR_MATRIX_COLOR_TABLE) { GL_POST_COLOR_MATRIX_COLOR_TABLE, 1 }, #endif #if defined(GL_POST_COLOR_MATRIX_GREEN_BIAS) { GL_POST_COLOR_MATRIX_GREEN_BIAS, 1 }, #endif #if defined(GL_POST_COLOR_MATRIX_GREEN_SCALE) { GL_POST_COLOR_MATRIX_GREEN_SCALE, 1 }, #endif #if defined(GL_POST_COLOR_MATRIX_RED_BIAS) { GL_POST_COLOR_MATRIX_RED_BIAS, 1 }, #endif #if defined(GL_POST_COLOR_MATRIX_RED_SCALE) { GL_POST_COLOR_MATRIX_RED_SCALE, 1 }, #endif #if defined(GL_POST_CONVOLUTION_ALPHA_BIAS) { GL_POST_CONVOLUTION_ALPHA_BIAS, 1 }, #endif #if defined(GL_POST_CONVOLUTION_ALPHA_SCALE) { GL_POST_CONVOLUTION_ALPHA_SCALE, 1 }, #endif #if defined(GL_POST_CONVOLUTION_BLUE_BIAS) { GL_POST_CONVOLUTION_BLUE_BIAS, 1 }, #endif #if defined(GL_POST_CONVOLUTION_BLUE_SCALE) { GL_POST_CONVOLUTION_BLUE_SCALE, 1 }, #endif #if defined(GL_POST_CONVOLUTION_COLOR_TABLE) { GL_POST_CONVOLUTION_COLOR_TABLE, 1 }, #endif #if defined(GL_POST_CONVOLUTION_GREEN_BIAS) { GL_POST_CONVOLUTION_GREEN_BIAS, 1 }, #endif #if defined(GL_POST_CONVOLUTION_GREEN_SCALE) { GL_POST_CONVOLUTION_GREEN_SCALE, 1 }, #endif #if defined(GL_POST_CONVOLUTION_RED_BIAS) { GL_POST_CONVOLUTION_RED_BIAS, 1 }, #endif #if defined(GL_POST_CONVOLUTION_RED_SCALE) { GL_POST_CONVOLUTION_RED_SCALE, 1 }, #endif #if defined(GL_PROJECTION_MATRIX) { GL_PROJECTION_MATRIX, 16 }, #endif #if defined(GL_PROJECTION_STACK_DEPTH) { GL_PROJECTION_STACK_DEPTH, 1 }, #endif #if defined(GL_QUADRATIC_ATTENUATION) { GL_QUADRATIC_ATTENUATION, 1 }, #endif #if defined(GL_QUERY_COUNTER_BITS) { GL_QUERY_COUNTER_BITS, 1 }, #endif #if defined(GL_QUERY_RESULT) { GL_QUERY_RESULT, 1 }, #endif #if defined(GL_QUERY_RESULT_AVAILABLE) { GL_QUERY_RESULT_AVAILABLE, 1 }, #endif #if defined(GL_READ_BUFFER) { GL_READ_BUFFER, 1 }, #endif #if defined(GL_RED_BIAS) { GL_RED_BIAS, 1 }, #endif #if defined(GL_RED_BITS) { GL_RED_BITS, 1 }, #endif #if defined(GL_RED_SCALE) { GL_RED_SCALE, 1 }, #endif #if defined(GL_RENDER_MODE) { GL_RENDER_MODE, 1 }, #endif #if defined(GL_RESCALE_NORMAL) { GL_RESCALE_NORMAL, 1 }, #endif #if defined(GL_RGBA_MODE) { GL_RGBA_MODE, 1 }, #endif #if defined(GL_RGB_SCALE) { GL_RGB_SCALE, 1 }, #endif #if defined(GL_SAMPLES) { GL_SAMPLES, 1 }, #endif #if defined(GL_SAMPLE_BUFFERS) { GL_SAMPLE_BUFFERS, 1 }, #endif #if defined(GL_SAMPLE_COVERAGE_INVERT) { GL_SAMPLE_COVERAGE_INVERT, 1 }, #endif #if defined(GL_SAMPLE_COVERAGE_VALUE) { GL_SAMPLE_COVERAGE_VALUE, 1 }, #endif #if defined(GL_SCISSOR_BOX) { GL_SCISSOR_BOX, 4 }, #endif #if defined(GL_SCISSOR_TEST) { GL_SCISSOR_TEST, 1 }, #endif #if defined(GL_SECONDARY_COLOR_ARRAY) { GL_SECONDARY_COLOR_ARRAY, 1 }, #endif #if defined(GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING) { GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING, 1 }, #endif #if defined(GL_SECONDARY_COLOR_ARRAY_SIZE) { GL_SECONDARY_COLOR_ARRAY_SIZE, 1 }, #endif #if defined(GL_SECONDARY_COLOR_ARRAY_STRIDE) { GL_SECONDARY_COLOR_ARRAY_STRIDE, 1 }, #endif #if defined(GL_SECONDARY_COLOR_ARRAY_TYPE) { GL_SECONDARY_COLOR_ARRAY_TYPE, 1 }, #endif #if defined(GL_SELECTION_BUFFER_SIZE) { GL_SELECTION_BUFFER_SIZE, 1 }, #endif #if defined(GL_SEPARABLE_2D) { GL_SEPARABLE_2D, 1 }, #endif #if defined(GL_SHADER_SOURCE_LENGTH) { GL_SHADER_SOURCE_LENGTH, 1 }, #endif #if defined(GL_SHADER_TYPE) { GL_SHADER_TYPE, 1 }, #endif #if defined(GL_SHADE_MODEL) { GL_SHADE_MODEL, 1 }, #endif #if defined(GL_SHININESS) { GL_SHININESS, 1 }, #endif #if defined(GL_SMOOTH_LINE_WIDTH_GRANULARITY) { GL_SMOOTH_LINE_WIDTH_GRANULARITY, 1 }, #endif #if defined(GL_SMOOTH_LINE_WIDTH_RANGE) { GL_SMOOTH_LINE_WIDTH_RANGE, 2 }, #endif #if defined(GL_SMOOTH_POINT_SIZE_GRANULARITY) { GL_SMOOTH_POINT_SIZE_GRANULARITY, 1 }, #endif #if defined(GL_SMOOTH_POINT_SIZE_RANGE) { GL_SMOOTH_POINT_SIZE_RANGE, 2 }, #endif #if defined(GL_SPECULAR) { GL_SPECULAR, 4 }, #endif #if defined(GL_SPOT_CUTOFF) { GL_SPOT_CUTOFF, 1 }, #endif #if defined(GL_SPOT_DIRECTION) { GL_SPOT_DIRECTION, 3 }, #endif #if defined(GL_SPOT_EXPONENT) { GL_SPOT_EXPONENT, 1 }, #endif #if defined(GL_SRC0_ALPHA) { GL_SRC0_ALPHA, 1 }, #endif #if defined(GL_SRC0_RGB) { GL_SRC0_RGB, 1 }, #endif #if defined(GL_SRC1_ALPHA) { GL_SRC1_ALPHA, 1 }, #endif #if defined(GL_SRC1_RGB) { GL_SRC1_RGB, 1 }, #endif #if defined(GL_SRC2_ALPHA) { GL_SRC2_ALPHA, 1 }, #endif #if defined(GL_SRC2_RGB) { GL_SRC2_RGB, 1 }, #endif #if defined(GL_STENCIL_BACK_FAIL) { GL_STENCIL_BACK_FAIL, 1 }, #endif #if defined(GL_STENCIL_BACK_FUNC) { GL_STENCIL_BACK_FUNC, 1 }, #endif #if defined(GL_STENCIL_BACK_PASS_DEPTH_FAIL) { GL_STENCIL_BACK_PASS_DEPTH_FAIL, 1 }, #endif #if defined(GL_STENCIL_BACK_PASS_DEPTH_PASS) { GL_STENCIL_BACK_PASS_DEPTH_PASS, 1 }, #endif #if defined(GL_STENCIL_BACK_REF) { GL_STENCIL_BACK_REF, 1 }, #endif #if defined(GL_STENCIL_BACK_VALUE_MASK) { GL_STENCIL_BACK_VALUE_MASK, 1 }, #endif #if defined(GL_STENCIL_BACK_WRITEMASK) { GL_STENCIL_BACK_WRITEMASK, 1 }, #endif #if defined(GL_STENCIL_BITS) { GL_STENCIL_BITS, 1 }, #endif #if defined(GL_STENCIL_CLEAR_VALUE) { GL_STENCIL_CLEAR_VALUE, 1 }, #endif #if defined(GL_STENCIL_FAIL) { GL_STENCIL_FAIL, 1 }, #endif #if defined(GL_STENCIL_FUNC) { GL_STENCIL_FUNC, 1 }, #endif #if defined(GL_STENCIL_PASS_DEPTH_FAIL) { GL_STENCIL_PASS_DEPTH_FAIL, 1 }, #endif #if defined(GL_STENCIL_PASS_DEPTH_PASS) { GL_STENCIL_PASS_DEPTH_PASS, 1 }, #endif #if defined(GL_STENCIL_REF) { GL_STENCIL_REF, 1 }, #endif #if defined(GL_STENCIL_TEST) { GL_STENCIL_TEST, 1 }, #endif #if defined(GL_STENCIL_VALUE_MASK) { GL_STENCIL_VALUE_MASK, 1 }, #endif #if defined(GL_STENCIL_WRITEMASK) { GL_STENCIL_WRITEMASK, 1 }, #endif #if defined(GL_STEREO) { GL_STEREO, 1 }, #endif #if defined(GL_SUBPIXEL_BITS) { GL_SUBPIXEL_BITS, 1 }, #endif #if defined(GL_TEXTURE_1D) { GL_TEXTURE_1D, 1 }, #endif #if defined(GL_TEXTURE_2D) { GL_TEXTURE_2D, 1 }, #endif #if defined(GL_TEXTURE_3D) { GL_TEXTURE_3D, 1 }, #endif #if defined(GL_TEXTURE_BASE_LEVEL) { GL_TEXTURE_BASE_LEVEL, 1 }, #endif #if defined(GL_TEXTURE_BINDING_1D) { GL_TEXTURE_BINDING_1D, 1 }, #endif #if defined(GL_TEXTURE_BINDING_2D) { GL_TEXTURE_BINDING_2D, 1 }, #endif #if defined(GL_TEXTURE_BINDING_3D) { GL_TEXTURE_BINDING_3D, 1 }, #endif #if defined(GL_TEXTURE_BINDING_CUBE_MAP) { GL_TEXTURE_BINDING_CUBE_MAP, 1 }, #endif #if defined(GL_TEXTURE_BORDER) { GL_TEXTURE_BORDER, 1 }, #endif #if defined(GL_TEXTURE_BORDER_COLOR) { GL_TEXTURE_BORDER_COLOR, 4 }, #endif #if defined(GL_TEXTURE_COMPARE_FUNC) { GL_TEXTURE_COMPARE_FUNC, 1 }, #endif #if defined(GL_TEXTURE_COMPARE_MODE) { GL_TEXTURE_COMPARE_MODE, 1 }, #endif #if defined(GL_TEXTURE_COMPRESSED) { GL_TEXTURE_COMPRESSED, 1 }, #endif #if defined(GL_TEXTURE_COMPRESSED_IMAGE_SIZE) { GL_TEXTURE_COMPRESSED_IMAGE_SIZE, 1 }, #endif #if defined(GL_TEXTURE_COMPRESSION_HINT) { GL_TEXTURE_COMPRESSION_HINT, 1 }, #endif #if defined(GL_TEXTURE_COORD_ARRAY) { GL_TEXTURE_COORD_ARRAY, 1 }, #endif #if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) { GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING, 1 }, #endif #if defined(GL_TEXTURE_COORD_ARRAY_SIZE) { GL_TEXTURE_COORD_ARRAY_SIZE, 1 }, #endif #if defined(GL_TEXTURE_COORD_ARRAY_STRIDE) { GL_TEXTURE_COORD_ARRAY_STRIDE, 1 }, #endif #if defined(GL_TEXTURE_COORD_ARRAY_TYPE) { GL_TEXTURE_COORD_ARRAY_TYPE, 1 }, #endif #if defined(GL_TEXTURE_CUBE_MAP) { GL_TEXTURE_CUBE_MAP, 1 }, #endif #if defined(GL_TEXTURE_DEPTH) { GL_TEXTURE_DEPTH, 1 }, #endif #if defined(GL_TEXTURE_DEPTH_SIZE) { GL_TEXTURE_DEPTH_SIZE, 1 }, #endif #if defined(GL_TEXTURE_ENV_COLOR) { GL_TEXTURE_ENV_COLOR, 4 }, #endif #if defined(GL_TEXTURE_ENV_MODE) { GL_TEXTURE_ENV_MODE, 1 }, #endif #if defined(GL_TEXTURE_GEN_MODE) { GL_TEXTURE_GEN_MODE, 1 }, #endif #if defined(GL_TEXTURE_GEN_Q) { GL_TEXTURE_GEN_Q, 1 }, #endif #if defined(GL_TEXTURE_GEN_R) { GL_TEXTURE_GEN_R, 1 }, #endif #if defined(GL_TEXTURE_GEN_S) { GL_TEXTURE_GEN_S, 1 }, #endif #if defined(GL_TEXTURE_GEN_T) { GL_TEXTURE_GEN_T, 1 }, #endif #if defined(GL_TEXTURE_HEIGHT) { GL_TEXTURE_HEIGHT, 1 }, #endif #if defined(GL_TEXTURE_INTERNAL_FORMAT) { GL_TEXTURE_INTERNAL_FORMAT, 1 }, #endif #if defined(GL_TEXTURE_LOD_BIAS) { GL_TEXTURE_LOD_BIAS, 1 }, #endif #if defined(GL_TEXTURE_MAG_FILTER) { GL_TEXTURE_MAG_FILTER, 1 }, #endif #if defined(GL_TEXTURE_MATRIX) { GL_TEXTURE_MATRIX, 16 }, #endif #if defined(GL_TEXTURE_MAX_LEVEL) { GL_TEXTURE_MAX_LEVEL, 1 }, #endif #if defined(GL_TEXTURE_MAX_LOD) { GL_TEXTURE_MAX_LOD, 1 }, #endif #if defined(GL_TEXTURE_MIN_FILTER) { GL_TEXTURE_MIN_FILTER, 1 }, #endif #if defined(GL_TEXTURE_MIN_LOD) { GL_TEXTURE_MIN_LOD, 1 }, #endif #if defined(GL_TEXTURE_PRIORITY) { GL_TEXTURE_PRIORITY, 1 }, #endif #if defined(GL_TEXTURE_RESIDENT) { GL_TEXTURE_RESIDENT, 1 }, #endif #if defined(GL_TEXTURE_STACK_DEPTH) { GL_TEXTURE_STACK_DEPTH, 1 }, #endif #if defined(GL_TEXTURE_WIDTH) { GL_TEXTURE_WIDTH, 1 }, #endif #if defined(GL_TEXTURE_WRAP_R) { GL_TEXTURE_WRAP_R, 1 }, #endif #if defined(GL_TEXTURE_WRAP_S) { GL_TEXTURE_WRAP_S, 1 }, #endif #if defined(GL_TEXTURE_WRAP_T) { GL_TEXTURE_WRAP_T, 1 }, #endif #if defined(GL_TRANSPOSE_COLOR_MATRIX) { GL_TRANSPOSE_COLOR_MATRIX, 16 }, #endif #if defined(GL_TRANSPOSE_MODELVIEW_MATRIX) { GL_TRANSPOSE_MODELVIEW_MATRIX, 16 }, #endif #if defined(GL_TRANSPOSE_PROJECTION_MATRIX) { GL_TRANSPOSE_PROJECTION_MATRIX, 16 }, #endif #if defined(GL_TRANSPOSE_TEXTURE_MATRIX) { GL_TRANSPOSE_TEXTURE_MATRIX, 16 }, #endif #if defined(GL_UNPACK_ALIGNMENT) { GL_UNPACK_ALIGNMENT, 1 }, #endif #if defined(GL_UNPACK_IMAGE_HEIGHT) { GL_UNPACK_IMAGE_HEIGHT, 1 }, #endif #if defined(GL_UNPACK_LSB_FIRST) { GL_UNPACK_LSB_FIRST, 1 }, #endif #if defined(GL_UNPACK_ROW_LENGTH) { GL_UNPACK_ROW_LENGTH, 1 }, #endif #if defined(GL_UNPACK_SKIP_IMAGES) { GL_UNPACK_SKIP_IMAGES, 1 }, #endif #if defined(GL_UNPACK_SKIP_PIXELS) { GL_UNPACK_SKIP_PIXELS, 1 }, #endif #if defined(GL_UNPACK_SKIP_ROWS) { GL_UNPACK_SKIP_ROWS, 1 }, #endif #if defined(GL_UNPACK_SWAP_BYTES) { GL_UNPACK_SWAP_BYTES, 1 }, #endif #if defined(GL_VALIDATE_STATUS) { GL_VALIDATE_STATUS, 1 }, #endif #if defined(GL_VERTEX_ARRAY) { GL_VERTEX_ARRAY, 1 }, #endif #if defined(GL_VERTEX_ARRAY_BUFFER_BINDING) { GL_VERTEX_ARRAY_BUFFER_BINDING, 1 }, #endif #if defined(GL_VERTEX_ARRAY_SIZE) { GL_VERTEX_ARRAY_SIZE, 1 }, #endif #if defined(GL_VERTEX_ARRAY_STRIDE) { GL_VERTEX_ARRAY_STRIDE, 1 }, #endif #if defined(GL_VERTEX_ARRAY_TYPE) { GL_VERTEX_ARRAY_TYPE, 1 }, #endif #if defined(GL_VERTEX_PROGRAM_POINT_SIZE) { GL_VERTEX_PROGRAM_POINT_SIZE, 1 }, #endif #if defined(GL_VERTEX_PROGRAM_TWO_SIDE) { GL_VERTEX_PROGRAM_TWO_SIDE, 1 }, #endif #if defined(GL_VIEWPORT) { GL_VIEWPORT, 4 }, #endif #if defined(GL_ZOOM_X) { GL_ZOOM_X, 1 }, #endif #if defined(GL_ZOOM_Y) { GL_ZOOM_Y, 1 }, #endif #if defined(GL_BUFFER_ACCESS) { GL_BUFFER_ACCESS, 1 }, #endif #if defined(GL_BUFFER_ACCESS_FLAGS) { GL_BUFFER_ACCESS_FLAGS, 1 }, #endif #if defined(GL_BUFFER_IMMUTABLE_STORAGE) { GL_BUFFER_IMMUTABLE_STORAGE, 1 }, #endif #if defined(GL_BUFFER_MAPPED) { GL_BUFFER_MAPPED, 1 }, #endif #if defined(GL_BUFFER_MAP_LENGTH) { GL_BUFFER_MAP_LENGTH, 1 }, #endif #if defined(GL_BUFFER_MAP_OFFSET) { GL_BUFFER_MAP_OFFSET, 1 }, #endif #if defined(GL_BUFFER_SIZE) { GL_BUFFER_SIZE, 1 }, #endif #if defined(GL_BUFFER_STORAGE_FLAGS) { GL_BUFFER_STORAGE_FLAGS, 1 }, #endif #if defined(GL_BUFFER_USAGE) { GL_BUFFER_USAGE, 1 }, #endif }; for (int i = 0; i < ArraySizeOf(tbl); i++) { (*_pParamInfoDict)[tbl[i].pname] = tbl[i].n; } }
char ZenToHanChar(const char *str, const char **next) { struct Convert { const char *zenkaku; int len; char hankaku; }; static const Convert convTbl[] = { { "\xef\xbc\x81", 3, 0x21 }, // ! { "\xe2\x80\x9c", 3, 0x22 }, // " { "\xe2\x80\x9d", 3, 0x22 }, // " { "\xe3\x82\x9b", 3, 0x22 }, // " { "\xe2\x80\xb3", 3, 0x22 }, // " { "\xef\xbc\x83", 3, 0x23 }, // # { "\xef\xbc\x84", 3, 0x24 }, // $ { "\xef\xbc\x85", 3, 0x25 }, // % { "\xef\xbc\x86", 3, 0x26 }, // & { "\xe2\x80\x99", 3, 0x27 }, // ' { "\xc2\xb4", 2, 0x27 }, // ' { "\xe2\x80\xb2", 3, 0x27 }, // ' { "\xef\xbc\x88", 3, 0x28 }, // ( { "\xef\xbc\x89", 3, 0x29 }, // ) { "\xef\xbc\x8a", 3, 0x2a }, // * { "\xc3\x97", 2, 0x2a }, // * { "\xef\xbc\x8b", 3, 0x2b }, // + { "\xe3\x80\x81", 3, 0x2c }, // , { "\xef\xbc\x8c", 3, 0x2c }, // , { "\xe3\x83\xbc", 3, 0x2d }, // - { "\xef\xbc\x8d", 3, 0x2d }, // - { "\xe2\x94\x80", 3, 0x2d }, // - { "\xe3\x80\x82", 3, 0x2e }, // . { "\xef\xbc\x8e", 3, 0x2e }, // . { "\xef\xbc\x8f", 3, 0x2f }, // / { "\xef\xbc\x90", 3, 0x30 }, // 0 { "\xef\xbc\x91", 3, 0x31 }, // 1 { "\xef\xbc\x92", 3, 0x32 }, // 2 { "\xef\xbc\x93", 3, 0x33 }, // 3 { "\xef\xbc\x94", 3, 0x34 }, // 4 { "\xef\xbc\x95", 3, 0x35 }, // 5 { "\xef\xbc\x96", 3, 0x36 }, // 6 { "\xef\xbc\x97", 3, 0x37 }, // 7 { "\xef\xbc\x98", 3, 0x38 }, // 8 { "\xef\xbc\x99", 3, 0x39 }, // 9 { "\xef\xbc\x9a", 3, 0x3a }, // : { "\xef\xbc\x9b", 3, 0x3b }, // ; { "\xef\xbc\x9c", 3, 0x3c }, // < { "\xe3\x80\x88", 3, 0x3c }, // < { "\xef\xbc\x9d", 3, 0x3d }, // = { "\xef\xbc\x9e", 3, 0x3e }, // > { "\xe3\x80\x89", 3, 0x3e }, // > { "\xef\xbc\x9f", 3, 0x3f }, // ? { "\xef\xbc\xa0", 3, 0x40 }, // @ { "\xef\xbc\xa1", 3, 0x41 }, // A { "\xef\xbc\xa2", 3, 0x42 }, // B { "\xef\xbc\xa3", 3, 0x43 }, // C { "\xef\xbc\xa4", 3, 0x44 }, // D { "\xef\xbc\xa5", 3, 0x45 }, // E { "\xef\xbc\xa6", 3, 0x46 }, // F { "\xef\xbc\xa7", 3, 0x47 }, // G { "\xef\xbc\xa8", 3, 0x48 }, // H { "\xef\xbc\xa9", 3, 0x49 }, // I { "\xef\xbc\xaa", 3, 0x4a }, // J { "\xef\xbc\xab", 3, 0x4b }, // K { "\xef\xbc\xac", 3, 0x4c }, // L { "\xef\xbc\xad", 3, 0x4d }, // M { "\xef\xbc\xae", 3, 0x4e }, // N { "\xef\xbc\xaf", 3, 0x4f }, // O { "\xef\xbc\xb0", 3, 0x50 }, // P { "\xef\xbc\xb1", 3, 0x51 }, // Q { "\xef\xbc\xb2", 3, 0x52 }, // R { "\xef\xbc\xb3", 3, 0x53 }, // S { "\xef\xbc\xb4", 3, 0x54 }, // T { "\xef\xbc\xb5", 3, 0x55 }, // U { "\xef\xbc\xb6", 3, 0x56 }, // V { "\xef\xbc\xb7", 3, 0x57 }, // W { "\xef\xbc\xb8", 3, 0x58 }, // X { "\xef\xbc\xb9", 3, 0x59 }, // Y { "\xef\xbc\xba", 3, 0x5a }, // Z { "\xef\xbc\xbb", 3, 0x5b }, // [ { "\xe3\x80\x94", 3, 0x5b }, // [ { "\xef\xbf\xa5", 3, 0x5c }, // yen { "\xef\xbc\xbd", 3, 0x5d }, // ] { "\xe3\x80\x95", 3, 0x5d }, // ] { "\xef\xbc\xbe", 3, 0x5e }, // ^ { "\xef\xbc\xbf", 3, 0x5f }, // _ { "\xe2\x80\x98", 3, 0x60 }, // ` { "\xef\xbd\x80", 3, 0x60 }, // ` { "\xef\xbd\x81", 3, 0x61 }, // a { "\xef\xbd\x82", 3, 0x62 }, // b { "\xef\xbd\x83", 3, 0x63 }, // c { "\xef\xbd\x84", 3, 0x64 }, // d { "\xef\xbd\x85", 3, 0x65 }, // e { "\xef\xbd\x86", 3, 0x66 }, // f { "\xef\xbd\x87", 3, 0x67 }, // g { "\xef\xbd\x88", 3, 0x68 }, // h { "\xef\xbd\x89", 3, 0x69 }, // i { "\xef\xbd\x8a", 3, 0x6a }, // j { "\xef\xbd\x8b", 3, 0x6b }, // k { "\xef\xbd\x8c", 3, 0x6c }, // l { "\xef\xbd\x8d", 3, 0x6d }, // m { "\xef\xbd\x8e", 3, 0x6e }, // n { "\xef\xbd\x8f", 3, 0x6f }, // o { "\xef\xbd\x90", 3, 0x70 }, // p { "\xef\xbd\x91", 3, 0x71 }, // q { "\xef\xbd\x92", 3, 0x72 }, // r { "\xef\xbd\x93", 3, 0x73 }, // s { "\xef\xbd\x94", 3, 0x74 }, // t { "\xef\xbd\x95", 3, 0x75 }, // u { "\xef\xbd\x96", 3, 0x76 }, // v { "\xef\xbd\x97", 3, 0x77 }, // w { "\xef\xbd\x98", 3, 0x78 }, // x { "\xef\xbd\x99", 3, 0x79 }, // y { "\xef\xbd\x9a", 3, 0x7a }, // z { "\xef\xbd\x9b", 3, 0x7b }, // { { "\xef\xbd\x9c", 3, 0x7c }, // | { "\xef\xbd\x9d", 3, 0x7d }, // } { "\xef\xbd\x9e", 3, 0x7e }, // ~ { "\xef\xbf\xa3", 3, 0x7e }, // ~ }; for (size_t i = 0; i < ArraySizeOf(convTbl); i++) { const Convert &conv = convTbl[i]; if (::strncmp(str, conv.zenkaku, conv.len) == 0) { if (next != nullptr) *next = str + conv.len; return conv.hankaku; } } if (IsUTF8First(*str)) { str++; while (IsUTF8Follower(*str)) str++; } else if (*str != '\0') { str++; } if (next != nullptr) *next = str; return '\0'; }
//----------------------------------------------------------------------------- // Tokenizer //----------------------------------------------------------------------------- TokenId Tokenizer::Tokenize(Environment &env, Stream &stream) { Signal &sig = env.GetSignal(); _iChar = 0; if (_tokenIdPending != TOKEN_None) { TokenId tokenId = _tokenIdPending; _tokenIdPending = TOKEN_None; return tokenId; } bool escapeFlag = false; for (;;) { int chRaw = stream.GetChar(sig); if (sig.IsSignalled()) break; char ch = (chRaw < 0)? '\0' : static_cast<char>(static_cast<UChar>(chRaw)); if (ch == '\\' && !escapeFlag) { escapeFlag = true; continue; } Gura_BeginPushbackRegion(); switch (_stat) { case STAT_LineTop: { if (ch == ' ' || ch == '\t') { // nothing to do } else if (ch == '\n' || ch == '\0') { // nothing to do } else if (ch == '#') { _stat = STAT_SkipToNextLine; } else { Gura_Pushback(); _stat = STAT_Field; } break; } case STAT_SkipToNextLine: { if (ch == '\n') { if (escapeFlag) { // nothing to do } else { _stat = STAT_LineTop; } } else { // nothing to do } break; } case STAT_Field: { if (ch == ' ' || ch == '\t') { _stat = STAT_SkipWhite; _field[_iChar] = '\0'; return TOKEN_Field; } else if (ch == '\n') { if (escapeFlag) { _stat = STAT_SkipWhite; } else { _tokenIdPending = TOKEN_EOL; _stat = STAT_LineTop; } _field[_iChar] = '\0'; return TOKEN_Field; } else if (ch == '\0') { _tokenIdPending = TOKEN_EOF; _stat = STAT_FileEnd; _field[_iChar] = '\0'; return TOKEN_Field; } else { _field[_iChar++] = ch; if (_iChar >= ArraySizeOf(_field)) { SetError_FormatError(env); return TOKEN_EOF; } } break; } case STAT_SkipWhite: { if (ch == ' ' || ch == '\t') { // nothing to do } else if (ch == '\n') { if (escapeFlag) { // nothing to do } else { _stat = STAT_LineTop; return TOKEN_EOL; } } else if (ch == '\0') { _stat = STAT_LineTop; return TOKEN_EOF; } else { Gura_Pushback(); _stat = STAT_Field; } break; } case STAT_FileEnd: { // nothing to do break; } } Gura_EndPushbackRegion(); escapeFlag = false; if (ch == '\0') break; if (ch == '\n') _iLine++; } return TOKEN_EOF; }