github.com/Konstantin8105/c4go@v0.0.0-20240505174241-768bb1c65a51/tests/raylib/raygui.go (about)

     1  package main
     2  
     3  type Vector2 struct {
     4  	x float32
     5  	y float32
     6  }
     7  
     8  type Vector3 struct {
     9  	x float32
    10  	y float32
    11  	z float32
    12  }
    13  
    14  type Vector4 struct {
    15  	x float32
    16  	y float32
    17  	z float32
    18  	w float32
    19  }
    20  
    21  type Quaternion = Vector4
    22  
    23  type Matrix struct {
    24  	m0  float32
    25  	m4  float32
    26  	m8  float32
    27  	m12 float32
    28  	m1  float32
    29  	m5  float32
    30  	m9  float32
    31  	m13 float32
    32  	m2  float32
    33  	m6  float32
    34  	m10 float32
    35  	m14 float32
    36  	m3  float32
    37  	m7  float32
    38  	m11 float32
    39  	m15 float32
    40  }
    41  
    42  type Color struct {
    43  	r uint8
    44  	g uint8
    45  	b uint8
    46  	a uint8
    47  }
    48  
    49  type Rectangle struct {
    50  	x      float32
    51  	y      float32
    52  	width  float32
    53  	height float32
    54  }
    55  
    56  type Image struct {
    57  	data    interface{}
    58  	width   int32
    59  	height  int32
    60  	mipmaps int32
    61  	format  int32
    62  }
    63  
    64  type Texture struct {
    65  	id      uint32
    66  	width   int32
    67  	height  int32
    68  	mipmaps int32
    69  	format  int32
    70  }
    71  
    72  type Texture2D = Texture
    73  
    74  type TextureCubemap = Texture
    75  
    76  type RenderTexture struct {
    77  	id      uint32
    78  	texture Texture
    79  	depth   Texture
    80  }
    81  
    82  type RenderTexture2D = RenderTexture
    83  
    84  type NPatchInfo struct {
    85  	source Rectangle
    86  	left   int32
    87  	top    int32
    88  	right  int32
    89  	bottom int32
    90  	layout int32
    91  }
    92  
    93  type GlyphInfo struct {
    94  	value    int32
    95  	offsetX  int32
    96  	offsetY  int32
    97  	advanceX int32
    98  	image    Image
    99  }
   100  
   101  type Font struct {
   102  	baseSize     int32
   103  	glyphCount   int32
   104  	glyphPadding int32
   105  	texture      Texture2D
   106  	recs         []Rectangle
   107  	glyphs       []GlyphInfo
   108  }
   109  
   110  type Camera3D struct {
   111  	position   Vector3
   112  	target     Vector3
   113  	up         Vector3
   114  	fovy       float32
   115  	projection int32
   116  }
   117  
   118  type Camera = Camera3D
   119  
   120  type Camera2D struct {
   121  	offset   Vector2
   122  	target   Vector2
   123  	rotation float32
   124  	zoom     float32
   125  }
   126  
   127  type Mesh struct {
   128  	vertexCount   int32
   129  	triangleCount int32
   130  	vertices      []float32
   131  	texcoords     []float32
   132  	texcoords2    []float32
   133  	normals       []float32
   134  	tangents      []float32
   135  	colors        []uint8
   136  	indices       []uint16
   137  	animVertices  []float32
   138  	animNormals   []float32
   139  	boneIds       []uint8
   140  	boneWeights   []float32
   141  	vaoId         uint32
   142  	vboId         []uint32
   143  }
   144  
   145  type Shader struct {
   146  	id   uint32
   147  	locs []int32
   148  }
   149  
   150  type MaterialMap struct {
   151  	texture Texture2D
   152  	color   Color
   153  	value   float32
   154  }
   155  
   156  type Material struct {
   157  	shader Shader
   158  	maps   []MaterialMap
   159  	params [4]float32
   160  }
   161  
   162  type Transform struct {
   163  	translation Vector3
   164  	rotation    Quaternion
   165  	scale       Vector3
   166  }
   167  
   168  type BoneInfo struct {
   169  	name   [32]byte
   170  	parent int32
   171  }
   172  
   173  type Model struct {
   174  	transform     Matrix
   175  	meshCount     int32
   176  	materialCount int32
   177  	meshes        []Mesh
   178  	materials     []Material
   179  	meshMaterial  []int32
   180  	boneCount     int32
   181  	bones         []BoneInfo
   182  	bindPose      []Transform
   183  }
   184  
   185  type ModelAnimation struct {
   186  	boneCount  int32
   187  	frameCount int32
   188  	bones      []BoneInfo
   189  	framePoses [][]Transform
   190  }
   191  
   192  type Ray struct {
   193  	position  Vector3
   194  	direction Vector3
   195  }
   196  
   197  type RayCollision struct {
   198  	hit      int32
   199  	distance float32
   200  	point    Vector3
   201  	normal   Vector3
   202  }
   203  
   204  type BoundingBox struct {
   205  	min Vector3
   206  	max Vector3
   207  }
   208  
   209  type Wave struct {
   210  	frameCount uint32
   211  	sampleRate uint32
   212  	sampleSize uint32
   213  	channels   uint32
   214  	data       interface{}
   215  }
   216  
   217  type AudioStream struct {
   218  	buffer     []rAudioBuffer
   219  	processor  []rAudioProcessor
   220  	sampleRate uint32
   221  	sampleSize uint32
   222  	channels   uint32
   223  }
   224  
   225  type Sound struct {
   226  	stream     AudioStream
   227  	frameCount uint32
   228  }
   229  
   230  type Music struct {
   231  	stream     AudioStream
   232  	frameCount uint32
   233  	looping    int32
   234  	ctxType    int32
   235  	ctxData    interface{}
   236  }
   237  
   238  type VrDeviceInfo struct {
   239  	hResolution            int32
   240  	vResolution            int32
   241  	hScreenSize            float32
   242  	vScreenSize            float32
   243  	vScreenCenter          float32
   244  	eyeToScreenDistance    float32
   245  	lensSeparationDistance float32
   246  	interpupillaryDistance float32
   247  	lensDistortionValues   [4]float32
   248  	chromaAbCorrection     [4]float32
   249  }
   250  
   251  type VrStereoConfig struct {
   252  	projection        [2]Matrix
   253  	viewOffset        [2]Matrix
   254  	leftLensCenter    [2]float32
   255  	rightLensCenter   [2]float32
   256  	leftScreenCenter  [2]float32
   257  	rightScreenCenter [2]float32
   258  	scale             [2]float32
   259  	scaleIn           [2]float32
   260  }
   261  
   262  type FilePathList struct {
   263  	capacity uint32
   264  	count    uint32
   265  	paths    [][]byte
   266  }
   267  
   268  const (
   269  	FLAG_VSYNC_HINT               int32 = 64
   270  	FLAG_FULLSCREEN_MODE                = 2
   271  	FLAG_WINDOW_RESIZABLE               = 4
   272  	FLAG_WINDOW_UNDECORATED             = 8
   273  	FLAG_WINDOW_HIDDEN                  = 128
   274  	FLAG_WINDOW_MINIMIZED               = 512
   275  	FLAG_WINDOW_MAXIMIZED               = 1024
   276  	FLAG_WINDOW_UNFOCUSED               = 2048
   277  	FLAG_WINDOW_TOPMOST                 = 4096
   278  	FLAG_WINDOW_ALWAYS_RUN              = 256
   279  	FLAG_WINDOW_TRANSPARENT             = 16
   280  	FLAG_WINDOW_HIGHDPI                 = 8192
   281  	FLAG_WINDOW_MOUSE_PASSTHROUGH       = 16384
   282  	FLAG_MSAA_4X_HINT                   = 32
   283  	FLAG_INTERLACED_HINT                = 65536
   284  )
   285  
   286  type ConfigFlags = int32
   287  
   288  const (
   289  	LOG_ALL     int32 = 0
   290  	LOG_TRACE         = 1
   291  	LOG_DEBUG         = 2
   292  	LOG_INFO          = 3
   293  	LOG_WARNING       = 4
   294  	LOG_ERROR         = 5
   295  	LOG_FATAL         = 6
   296  	LOG_NONE          = 7
   297  )
   298  
   299  type TraceLogLevel = int32
   300  
   301  const (
   302  	KEY_NULL          int32 = 0
   303  	KEY_APOSTROPHE          = 39
   304  	KEY_COMMA               = 44
   305  	KEY_MINUS               = 45
   306  	KEY_PERIOD              = 46
   307  	KEY_SLASH               = 47
   308  	KEY_ZERO                = 48
   309  	KEY_ONE                 = 49
   310  	KEY_TWO                 = 50
   311  	KEY_THREE               = 51
   312  	KEY_FOUR                = 52
   313  	KEY_FIVE                = 53
   314  	KEY_SIX                 = 54
   315  	KEY_SEVEN               = 55
   316  	KEY_EIGHT               = 56
   317  	KEY_NINE                = 57
   318  	KEY_SEMICOLON           = 59
   319  	KEY_EQUAL               = 61
   320  	KEY_A                   = 65
   321  	KEY_B                   = 66
   322  	KEY_C                   = 67
   323  	KEY_D                   = 68
   324  	KEY_E                   = 69
   325  	KEY_F                   = 70
   326  	KEY_G                   = 71
   327  	KEY_H                   = 72
   328  	KEY_I                   = 73
   329  	KEY_J                   = 74
   330  	KEY_K                   = 75
   331  	KEY_L                   = 76
   332  	KEY_M                   = 77
   333  	KEY_N                   = 78
   334  	KEY_O                   = 79
   335  	KEY_P                   = 80
   336  	KEY_Q                   = 81
   337  	KEY_R                   = 82
   338  	KEY_S                   = 83
   339  	KEY_T                   = 84
   340  	KEY_U                   = 85
   341  	KEY_V                   = 86
   342  	KEY_W                   = 87
   343  	KEY_X                   = 88
   344  	KEY_Y                   = 89
   345  	KEY_Z                   = 90
   346  	KEY_LEFT_BRACKET        = 91
   347  	KEY_BACKSLASH           = 92
   348  	KEY_RIGHT_BRACKET       = 93
   349  	KEY_GRAVE               = 96
   350  	KEY_SPACE               = 32
   351  	KEY_ESCAPE              = 256
   352  	KEY_ENTER               = 257
   353  	KEY_TAB                 = 258
   354  	KEY_BACKSPACE           = 259
   355  	KEY_INSERT              = 260
   356  	KEY_DELETE              = 261
   357  	KEY_RIGHT               = 262
   358  	KEY_LEFT                = 263
   359  	KEY_DOWN                = 264
   360  	KEY_UP                  = 265
   361  	KEY_PAGE_UP             = 266
   362  	KEY_PAGE_DOWN           = 267
   363  	KEY_HOME                = 268
   364  	KEY_END                 = 269
   365  	KEY_CAPS_LOCK           = 280
   366  	KEY_SCROLL_LOCK         = 281
   367  	KEY_NUM_LOCK            = 282
   368  	KEY_PRINT_SCREEN        = 283
   369  	KEY_PAUSE               = 284
   370  	KEY_F1                  = 290
   371  	KEY_F2                  = 291
   372  	KEY_F3                  = 292
   373  	KEY_F4                  = 293
   374  	KEY_F5                  = 294
   375  	KEY_F6                  = 295
   376  	KEY_F7                  = 296
   377  	KEY_F8                  = 297
   378  	KEY_F9                  = 298
   379  	KEY_F10                 = 299
   380  	KEY_F11                 = 300
   381  	KEY_F12                 = 301
   382  	KEY_LEFT_SHIFT          = 340
   383  	KEY_LEFT_CONTROL        = 341
   384  	KEY_LEFT_ALT            = 342
   385  	KEY_LEFT_SUPER          = 343
   386  	KEY_RIGHT_SHIFT         = 344
   387  	KEY_RIGHT_CONTROL       = 345
   388  	KEY_RIGHT_ALT           = 346
   389  	KEY_RIGHT_SUPER         = 347
   390  	KEY_KB_MENU             = 348
   391  	KEY_KP_0                = 320
   392  	KEY_KP_1                = 321
   393  	KEY_KP_2                = 322
   394  	KEY_KP_3                = 323
   395  	KEY_KP_4                = 324
   396  	KEY_KP_5                = 325
   397  	KEY_KP_6                = 326
   398  	KEY_KP_7                = 327
   399  	KEY_KP_8                = 328
   400  	KEY_KP_9                = 329
   401  	KEY_KP_DECIMAL          = 330
   402  	KEY_KP_DIVIDE           = 331
   403  	KEY_KP_MULTIPLY         = 332
   404  	KEY_KP_SUBTRACT         = 333
   405  	KEY_KP_ADD              = 334
   406  	KEY_KP_ENTER            = 335
   407  	KEY_KP_EQUAL            = 336
   408  	KEY_BACK                = 4
   409  	KEY_MENU                = 82
   410  	KEY_VOLUME_UP           = 24
   411  	KEY_VOLUME_DOWN         = 25
   412  )
   413  
   414  type KeyboardKey = int32
   415  
   416  const (
   417  	MOUSE_BUTTON_LEFT    int32 = 0
   418  	MOUSE_BUTTON_RIGHT         = 1
   419  	MOUSE_BUTTON_MIDDLE        = 2
   420  	MOUSE_BUTTON_SIDE          = 3
   421  	MOUSE_BUTTON_EXTRA         = 4
   422  	MOUSE_BUTTON_FORWARD       = 5
   423  	MOUSE_BUTTON_BACK          = 6
   424  )
   425  
   426  type MouseButton = int32
   427  
   428  const (
   429  	MOUSE_CURSOR_DEFAULT       int32 = 0
   430  	MOUSE_CURSOR_ARROW               = 1
   431  	MOUSE_CURSOR_IBEAM               = 2
   432  	MOUSE_CURSOR_CROSSHAIR           = 3
   433  	MOUSE_CURSOR_POINTING_HAND       = 4
   434  	MOUSE_CURSOR_RESIZE_EW           = 5
   435  	MOUSE_CURSOR_RESIZE_NS           = 6
   436  	MOUSE_CURSOR_RESIZE_NWSE         = 7
   437  	MOUSE_CURSOR_RESIZE_NESW         = 8
   438  	MOUSE_CURSOR_RESIZE_ALL          = 9
   439  	MOUSE_CURSOR_NOT_ALLOWED         = 10
   440  )
   441  
   442  type MouseCursor = int32
   443  
   444  const (
   445  	GAMEPAD_BUTTON_UNKNOWN          int32 = 0
   446  	GAMEPAD_BUTTON_LEFT_FACE_UP           = 1
   447  	GAMEPAD_BUTTON_LEFT_FACE_RIGHT        = 2
   448  	GAMEPAD_BUTTON_LEFT_FACE_DOWN         = 3
   449  	GAMEPAD_BUTTON_LEFT_FACE_LEFT         = 4
   450  	GAMEPAD_BUTTON_RIGHT_FACE_UP          = 5
   451  	GAMEPAD_BUTTON_RIGHT_FACE_RIGHT       = 6
   452  	GAMEPAD_BUTTON_RIGHT_FACE_DOWN        = 7
   453  	GAMEPAD_BUTTON_RIGHT_FACE_LEFT        = 8
   454  	GAMEPAD_BUTTON_LEFT_TRIGGER_1         = 9
   455  	GAMEPAD_BUTTON_LEFT_TRIGGER_2         = 10
   456  	GAMEPAD_BUTTON_RIGHT_TRIGGER_1        = 11
   457  	GAMEPAD_BUTTON_RIGHT_TRIGGER_2        = 12
   458  	GAMEPAD_BUTTON_MIDDLE_LEFT            = 13
   459  	GAMEPAD_BUTTON_MIDDLE                 = 14
   460  	GAMEPAD_BUTTON_MIDDLE_RIGHT           = 15
   461  	GAMEPAD_BUTTON_LEFT_THUMB             = 16
   462  	GAMEPAD_BUTTON_RIGHT_THUMB            = 17
   463  )
   464  
   465  type GamepadButton = int32
   466  
   467  const (
   468  	GAMEPAD_AXIS_LEFT_X        int32 = 0
   469  	GAMEPAD_AXIS_LEFT_Y              = 1
   470  	GAMEPAD_AXIS_RIGHT_X             = 2
   471  	GAMEPAD_AXIS_RIGHT_Y             = 3
   472  	GAMEPAD_AXIS_LEFT_TRIGGER        = 4
   473  	GAMEPAD_AXIS_RIGHT_TRIGGER       = 5
   474  )
   475  
   476  type GamepadAxis = int32
   477  
   478  const (
   479  	MATERIAL_MAP_ALBEDO     int32 = 0
   480  	MATERIAL_MAP_METALNESS        = 1
   481  	MATERIAL_MAP_NORMAL           = 2
   482  	MATERIAL_MAP_ROUGHNESS        = 3
   483  	MATERIAL_MAP_OCCLUSION        = 4
   484  	MATERIAL_MAP_EMISSION         = 5
   485  	MATERIAL_MAP_HEIGHT           = 6
   486  	MATERIAL_MAP_CUBEMAP          = 7
   487  	MATERIAL_MAP_IRRADIANCE       = 8
   488  	MATERIAL_MAP_PREFILTER        = 9
   489  	MATERIAL_MAP_BRDF             = 10
   490  )
   491  
   492  type MaterialMapIndex = int32
   493  
   494  const (
   495  	SHADER_LOC_VERTEX_POSITION   int32 = 0
   496  	SHADER_LOC_VERTEX_TEXCOORD01       = 1
   497  	SHADER_LOC_VERTEX_TEXCOORD02       = 2
   498  	SHADER_LOC_VERTEX_NORMAL           = 3
   499  	SHADER_LOC_VERTEX_TANGENT          = 4
   500  	SHADER_LOC_VERTEX_COLOR            = 5
   501  	SHADER_LOC_MATRIX_MVP              = 6
   502  	SHADER_LOC_MATRIX_VIEW             = 7
   503  	SHADER_LOC_MATRIX_PROJECTION       = 8
   504  	SHADER_LOC_MATRIX_MODEL            = 9
   505  	SHADER_LOC_MATRIX_NORMAL           = 10
   506  	SHADER_LOC_VECTOR_VIEW             = 11
   507  	SHADER_LOC_COLOR_DIFFUSE           = 12
   508  	SHADER_LOC_COLOR_SPECULAR          = 13
   509  	SHADER_LOC_COLOR_AMBIENT           = 14
   510  	SHADER_LOC_MAP_ALBEDO              = 15
   511  	SHADER_LOC_MAP_METALNESS           = 16
   512  	SHADER_LOC_MAP_NORMAL              = 17
   513  	SHADER_LOC_MAP_ROUGHNESS           = 18
   514  	SHADER_LOC_MAP_OCCLUSION           = 19
   515  	SHADER_LOC_MAP_EMISSION            = 20
   516  	SHADER_LOC_MAP_HEIGHT              = 21
   517  	SHADER_LOC_MAP_CUBEMAP             = 22
   518  	SHADER_LOC_MAP_IRRADIANCE          = 23
   519  	SHADER_LOC_MAP_PREFILTER           = 24
   520  	SHADER_LOC_MAP_BRDF                = 25
   521  )
   522  
   523  type ShaderLocationIndex = int32
   524  
   525  const (
   526  	SHADER_UNIFORM_FLOAT     int32 = 0
   527  	SHADER_UNIFORM_VEC2            = 1
   528  	SHADER_UNIFORM_VEC3            = 2
   529  	SHADER_UNIFORM_VEC4            = 3
   530  	SHADER_UNIFORM_INT             = 4
   531  	SHADER_UNIFORM_IVEC2           = 5
   532  	SHADER_UNIFORM_IVEC3           = 6
   533  	SHADER_UNIFORM_IVEC4           = 7
   534  	SHADER_UNIFORM_SAMPLER2D       = 8
   535  )
   536  
   537  type ShaderUniformDataType = int32
   538  
   539  const (
   540  	SHADER_ATTRIB_FLOAT int32 = 0
   541  	SHADER_ATTRIB_VEC2        = 1
   542  	SHADER_ATTRIB_VEC3        = 2
   543  	SHADER_ATTRIB_VEC4        = 3
   544  )
   545  
   546  type ShaderAttributeDataType = int32
   547  
   548  const (
   549  	PIXELFORMAT_UNCOMPRESSED_GRAYSCALE    int32 = 1
   550  	PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA         = 2
   551  	PIXELFORMAT_UNCOMPRESSED_R5G6B5             = 3
   552  	PIXELFORMAT_UNCOMPRESSED_R8G8B8             = 4
   553  	PIXELFORMAT_UNCOMPRESSED_R5G5B5A1           = 5
   554  	PIXELFORMAT_UNCOMPRESSED_R4G4B4A4           = 6
   555  	PIXELFORMAT_UNCOMPRESSED_R8G8B8A8           = 7
   556  	PIXELFORMAT_UNCOMPRESSED_R32                = 8
   557  	PIXELFORMAT_UNCOMPRESSED_R32G32B32          = 9
   558  	PIXELFORMAT_UNCOMPRESSED_R32G32B32A32       = 10
   559  	PIXELFORMAT_COMPRESSED_DXT1_RGB             = 11
   560  	PIXELFORMAT_COMPRESSED_DXT1_RGBA            = 12
   561  	PIXELFORMAT_COMPRESSED_DXT3_RGBA            = 13
   562  	PIXELFORMAT_COMPRESSED_DXT5_RGBA            = 14
   563  	PIXELFORMAT_COMPRESSED_ETC1_RGB             = 15
   564  	PIXELFORMAT_COMPRESSED_ETC2_RGB             = 16
   565  	PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA        = 17
   566  	PIXELFORMAT_COMPRESSED_PVRT_RGB             = 18
   567  	PIXELFORMAT_COMPRESSED_PVRT_RGBA            = 19
   568  	PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA        = 20
   569  	PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA        = 21
   570  )
   571  
   572  type PixelFormat = int32
   573  
   574  const (
   575  	TEXTURE_FILTER_POINT           int32 = 0
   576  	TEXTURE_FILTER_BILINEAR              = 1
   577  	TEXTURE_FILTER_TRILINEAR             = 2
   578  	TEXTURE_FILTER_ANISOTROPIC_4X        = 3
   579  	TEXTURE_FILTER_ANISOTROPIC_8X        = 4
   580  	TEXTURE_FILTER_ANISOTROPIC_16X       = 5
   581  )
   582  
   583  type TextureFilter = int32
   584  
   585  const (
   586  	TEXTURE_WRAP_REPEAT        int32 = 0
   587  	TEXTURE_WRAP_CLAMP               = 1
   588  	TEXTURE_WRAP_MIRROR_REPEAT       = 2
   589  	TEXTURE_WRAP_MIRROR_CLAMP        = 3
   590  )
   591  
   592  type TextureWrap = int32
   593  
   594  const (
   595  	CUBEMAP_LAYOUT_AUTO_DETECT         int32 = 0
   596  	CUBEMAP_LAYOUT_LINE_VERTICAL             = 1
   597  	CUBEMAP_LAYOUT_LINE_HORIZONTAL           = 2
   598  	CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR       = 3
   599  	CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE       = 4
   600  	CUBEMAP_LAYOUT_PANORAMA                  = 5
   601  )
   602  
   603  type CubemapLayout = int32
   604  
   605  const (
   606  	FONT_DEFAULT int32 = 0
   607  	FONT_BITMAP        = 1
   608  	FONT_SDF           = 2
   609  )
   610  
   611  type FontType = int32
   612  
   613  const (
   614  	BLEND_ALPHA             int32 = 0
   615  	BLEND_ADDITIVE                = 1
   616  	BLEND_MULTIPLIED              = 2
   617  	BLEND_ADD_COLORS              = 3
   618  	BLEND_SUBTRACT_COLORS         = 4
   619  	BLEND_ALPHA_PREMULTIPLY       = 5
   620  	BLEND_CUSTOM                  = 6
   621  	BLEND_CUSTOM_SEPARATE         = 7
   622  )
   623  
   624  type BlendMode = int32
   625  
   626  const (
   627  	GESTURE_NONE        int32 = 0
   628  	GESTURE_TAP               = 1
   629  	GESTURE_DOUBLETAP         = 2
   630  	GESTURE_HOLD              = 4
   631  	GESTURE_DRAG              = 8
   632  	GESTURE_SWIPE_RIGHT       = 16
   633  	GESTURE_SWIPE_LEFT        = 32
   634  	GESTURE_SWIPE_UP          = 64
   635  	GESTURE_SWIPE_DOWN        = 128
   636  	GESTURE_PINCH_IN          = 256
   637  	GESTURE_PINCH_OUT         = 512
   638  )
   639  
   640  type Gesture = int32
   641  
   642  const (
   643  	CAMERA_CUSTOM       int32 = 0
   644  	CAMERA_FREE               = 1
   645  	CAMERA_ORBITAL            = 2
   646  	CAMERA_FIRST_PERSON       = 3
   647  	CAMERA_THIRD_PERSON       = 4
   648  )
   649  
   650  type CameraMode = int32
   651  
   652  const (
   653  	CAMERA_PERSPECTIVE  int32 = 0
   654  	CAMERA_ORTHOGRAPHIC       = 1
   655  )
   656  
   657  type CameraProjection = int32
   658  
   659  const (
   660  	NPATCH_NINE_PATCH             int32 = 0
   661  	NPATCH_THREE_PATCH_VERTICAL         = 1
   662  	NPATCH_THREE_PATCH_HORIZONTAL       = 2
   663  )
   664  
   665  type NPatchLayout = int32
   666  
   667  type TraceLogCallback = *va_list
   668  
   669  type LoadFileDataCallback = func([]byte, []uint32) []uint8
   670  
   671  type SaveFileDataCallback = func([]byte, interface{}, uint32) int32
   672  
   673  type LoadFileTextCallback = func([]byte) []byte
   674  
   675  type SaveFileTextCallback = func([]byte, []byte) int32
   676  
   677  type AudioCallback = func(interface{}, uint32)
   678  
   679  type GuiStyleProp struct {
   680  	controlId     uint16
   681  	propertyId    uint16
   682  	propertyValue uint32
   683  }
   684  
   685  const (
   686  	STATE_NORMAL   int32 = 0
   687  	STATE_FOCUSED        = 1
   688  	STATE_PRESSED        = 2
   689  	STATE_DISABLED       = 3
   690  )
   691  
   692  type GuiState = int32
   693  
   694  const (
   695  	TEXT_ALIGN_LEFT   int32 = 0
   696  	TEXT_ALIGN_CENTER       = 1
   697  	TEXT_ALIGN_RIGHT        = 2
   698  )
   699  
   700  type GuiTextAlignment = int32
   701  
   702  const (
   703  	DEFAULT     int32 = 0
   704  	LABEL             = 1
   705  	BUTTON            = 2
   706  	TOGGLE            = 3
   707  	SLIDER            = 4
   708  	PROGRESSBAR       = 5
   709  	CHECKBOX          = 6
   710  	COMBOBOX          = 7
   711  	DROPDOWNBOX       = 8
   712  	TEXTBOX           = 9
   713  	VALUEBOX          = 10
   714  	SPINNER           = 11
   715  	LISTVIEW          = 12
   716  	COLORPICKER       = 13
   717  	SCROLLBAR         = 14
   718  	STATUSBAR         = 15
   719  )
   720  
   721  type GuiControl = int32
   722  
   723  const (
   724  	BORDER_COLOR_NORMAL   int32 = 0
   725  	BASE_COLOR_NORMAL           = 1
   726  	TEXT_COLOR_NORMAL           = 2
   727  	BORDER_COLOR_FOCUSED        = 3
   728  	BASE_COLOR_FOCUSED          = 4
   729  	TEXT_COLOR_FOCUSED          = 5
   730  	BORDER_COLOR_PRESSED        = 6
   731  	BASE_COLOR_PRESSED          = 7
   732  	TEXT_COLOR_PRESSED          = 8
   733  	BORDER_COLOR_DISABLED       = 9
   734  	BASE_COLOR_DISABLED         = 10
   735  	TEXT_COLOR_DISABLED         = 11
   736  	BORDER_WIDTH                = 12
   737  	TEXT_PADDING                = 13
   738  	TEXT_ALIGNMENT              = 14
   739  	RESERVED                    = 15
   740  )
   741  
   742  type GuiControlProperty = int32
   743  
   744  const (
   745  	TEXT_SIZE        int32 = 16
   746  	TEXT_SPACING           = 17
   747  	LINE_COLOR             = 18
   748  	BACKGROUND_COLOR       = 19
   749  )
   750  
   751  type GuiDefaultProperty = int32
   752  
   753  const (
   754  	GROUP_PADDING int32 = 16
   755  )
   756  
   757  type GuiToggleProperty = int32
   758  
   759  const (
   760  	SLIDER_WIDTH   int32 = 16
   761  	SLIDER_PADDING       = 17
   762  )
   763  
   764  type GuiSliderProperty = int32
   765  
   766  const (
   767  	PROGRESS_PADDING int32 = 16
   768  )
   769  
   770  type GuiProgressBarProperty = int32
   771  
   772  const (
   773  	ARROWS_SIZE           int32 = 16
   774  	ARROWS_VISIBLE              = 17
   775  	SCROLL_SLIDER_PADDING       = 18
   776  	SCROLL_SLIDER_SIZE          = 19
   777  	SCROLL_PADDING              = 20
   778  	SCROLL_SPEED                = 21
   779  )
   780  
   781  type GuiScrollBarProperty = int32
   782  
   783  const (
   784  	CHECK_PADDING int32 = 16
   785  )
   786  
   787  type GuiCheckBoxProperty = int32
   788  
   789  const (
   790  	COMBO_BUTTON_WIDTH   int32 = 16
   791  	COMBO_BUTTON_SPACING       = 17
   792  )
   793  
   794  type GuiComboBoxProperty = int32
   795  
   796  const (
   797  	ARROW_PADDING          int32 = 16
   798  	DROPDOWN_ITEMS_SPACING       = 17
   799  )
   800  
   801  type GuiDropdownBoxProperty = int32
   802  
   803  const (
   804  	TEXT_INNER_PADDING int32 = 16
   805  	TEXT_LINES_SPACING       = 17
   806  )
   807  
   808  type GuiTextBoxProperty = int32
   809  
   810  const (
   811  	SPIN_BUTTON_WIDTH   int32 = 16
   812  	SPIN_BUTTON_SPACING       = 17
   813  )
   814  
   815  type GuiSpinnerProperty = int32
   816  
   817  const (
   818  	LIST_ITEMS_HEIGHT  int32 = 16
   819  	LIST_ITEMS_SPACING       = 17
   820  	SCROLLBAR_WIDTH          = 18
   821  	SCROLLBAR_SIDE           = 19
   822  )
   823  
   824  type GuiListViewProperty = int32
   825  
   826  const (
   827  	COLOR_SELECTOR_SIZE      int32 = 16
   828  	HUEBAR_WIDTH                   = 17
   829  	HUEBAR_PADDING                 = 18
   830  	HUEBAR_SELECTOR_HEIGHT         = 19
   831  	HUEBAR_SELECTOR_OVERFLOW       = 20
   832  )
   833  
   834  type GuiColorPickerProperty = int32
   835  
   836  const (
   837  	ICON_NONE                    int32 = 0
   838  	ICON_FOLDER_FILE_OPEN              = 1
   839  	ICON_FILE_SAVE_CLASSIC             = 2
   840  	ICON_FOLDER_OPEN                   = 3
   841  	ICON_FOLDER_SAVE                   = 4
   842  	ICON_FILE_OPEN                     = 5
   843  	ICON_FILE_SAVE                     = 6
   844  	ICON_FILE_EXPORT                   = 7
   845  	ICON_FILE_ADD                      = 8
   846  	ICON_FILE_DELETE                   = 9
   847  	ICON_FILETYPE_TEXT                 = 10
   848  	ICON_FILETYPE_AUDIO                = 11
   849  	ICON_FILETYPE_IMAGE                = 12
   850  	ICON_FILETYPE_PLAY                 = 13
   851  	ICON_FILETYPE_VIDEO                = 14
   852  	ICON_FILETYPE_INFO                 = 15
   853  	ICON_FILE_COPY                     = 16
   854  	ICON_FILE_CUT                      = 17
   855  	ICON_FILE_PASTE                    = 18
   856  	ICON_CURSOR_HAND                   = 19
   857  	ICON_CURSOR_POINTER                = 20
   858  	ICON_CURSOR_CLASSIC                = 21
   859  	ICON_PENCIL                        = 22
   860  	ICON_PENCIL_BIG                    = 23
   861  	ICON_BRUSH_CLASSIC                 = 24
   862  	ICON_BRUSH_PAINTER                 = 25
   863  	ICON_WATER_DROP                    = 26
   864  	ICON_COLOR_PICKER                  = 27
   865  	ICON_RUBBER                        = 28
   866  	ICON_COLOR_BUCKET                  = 29
   867  	ICON_TEXT_T                        = 30
   868  	ICON_TEXT_A                        = 31
   869  	ICON_SCALE                         = 32
   870  	ICON_RESIZE                        = 33
   871  	ICON_FILTER_POINT                  = 34
   872  	ICON_FILTER_BILINEAR               = 35
   873  	ICON_CROP                          = 36
   874  	ICON_CROP_ALPHA                    = 37
   875  	ICON_SQUARE_TOGGLE                 = 38
   876  	ICON_SYMMETRY                      = 39
   877  	ICON_SYMMETRY_HORIZONTAL           = 40
   878  	ICON_SYMMETRY_VERTICAL             = 41
   879  	ICON_LENS                          = 42
   880  	ICON_LENS_BIG                      = 43
   881  	ICON_EYE_ON                        = 44
   882  	ICON_EYE_OFF                       = 45
   883  	ICON_FILTER_TOP                    = 46
   884  	ICON_FILTER                        = 47
   885  	ICON_TARGET_POINT                  = 48
   886  	ICON_TARGET_SMALL                  = 49
   887  	ICON_TARGET_BIG                    = 50
   888  	ICON_TARGET_MOVE                   = 51
   889  	ICON_CURSOR_MOVE                   = 52
   890  	ICON_CURSOR_SCALE                  = 53
   891  	ICON_CURSOR_SCALE_RIGHT            = 54
   892  	ICON_CURSOR_SCALE_LEFT             = 55
   893  	ICON_UNDO                          = 56
   894  	ICON_REDO                          = 57
   895  	ICON_REREDO                        = 58
   896  	ICON_MUTATE                        = 59
   897  	ICON_ROTATE                        = 60
   898  	ICON_REPEAT                        = 61
   899  	ICON_SHUFFLE                       = 62
   900  	ICON_EMPTYBOX                      = 63
   901  	ICON_TARGET                        = 64
   902  	ICON_TARGET_SMALL_FILL             = 65
   903  	ICON_TARGET_BIG_FILL               = 66
   904  	ICON_TARGET_MOVE_FILL              = 67
   905  	ICON_CURSOR_MOVE_FILL              = 68
   906  	ICON_CURSOR_SCALE_FILL             = 69
   907  	ICON_CURSOR_SCALE_RIGHT_FILL       = 70
   908  	ICON_CURSOR_SCALE_LEFT_FILL        = 71
   909  	ICON_UNDO_FILL                     = 72
   910  	ICON_REDO_FILL                     = 73
   911  	ICON_REREDO_FILL                   = 74
   912  	ICON_MUTATE_FILL                   = 75
   913  	ICON_ROTATE_FILL                   = 76
   914  	ICON_REPEAT_FILL                   = 77
   915  	ICON_SHUFFLE_FILL                  = 78
   916  	ICON_EMPTYBOX_SMALL                = 79
   917  	ICON_BOX                           = 80
   918  	ICON_BOX_TOP                       = 81
   919  	ICON_BOX_TOP_RIGHT                 = 82
   920  	ICON_BOX_RIGHT                     = 83
   921  	ICON_BOX_BOTTOM_RIGHT              = 84
   922  	ICON_BOX_BOTTOM                    = 85
   923  	ICON_BOX_BOTTOM_LEFT               = 86
   924  	ICON_BOX_LEFT                      = 87
   925  	ICON_BOX_TOP_LEFT                  = 88
   926  	ICON_BOX_CENTER                    = 89
   927  	ICON_BOX_CIRCLE_MASK               = 90
   928  	ICON_POT                           = 91
   929  	ICON_ALPHA_MULTIPLY                = 92
   930  	ICON_ALPHA_CLEAR                   = 93
   931  	ICON_DITHERING                     = 94
   932  	ICON_MIPMAPS                       = 95
   933  	ICON_BOX_GRID                      = 96
   934  	ICON_GRID                          = 97
   935  	ICON_BOX_CORNERS_SMALL             = 98
   936  	ICON_BOX_CORNERS_BIG               = 99
   937  	ICON_FOUR_BOXES                    = 100
   938  	ICON_GRID_FILL                     = 101
   939  	ICON_BOX_MULTISIZE                 = 102
   940  	ICON_ZOOM_SMALL                    = 103
   941  	ICON_ZOOM_MEDIUM                   = 104
   942  	ICON_ZOOM_BIG                      = 105
   943  	ICON_ZOOM_ALL                      = 106
   944  	ICON_ZOOM_CENTER                   = 107
   945  	ICON_BOX_DOTS_SMALL                = 108
   946  	ICON_BOX_DOTS_BIG                  = 109
   947  	ICON_BOX_CONCENTRIC                = 110
   948  	ICON_BOX_GRID_BIG                  = 111
   949  	ICON_OK_TICK                       = 112
   950  	ICON_CROSS                         = 113
   951  	ICON_ARROW_LEFT                    = 114
   952  	ICON_ARROW_RIGHT                   = 115
   953  	ICON_ARROW_DOWN                    = 116
   954  	ICON_ARROW_UP                      = 117
   955  	ICON_ARROW_LEFT_FILL               = 118
   956  	ICON_ARROW_RIGHT_FILL              = 119
   957  	ICON_ARROW_DOWN_FILL               = 120
   958  	ICON_ARROW_UP_FILL                 = 121
   959  	ICON_AUDIO                         = 122
   960  	ICON_FX                            = 123
   961  	ICON_WAVE                          = 124
   962  	ICON_WAVE_SINUS                    = 125
   963  	ICON_WAVE_SQUARE                   = 126
   964  	ICON_WAVE_TRIANGULAR               = 127
   965  	ICON_CROSS_SMALL                   = 128
   966  	ICON_PLAYER_PREVIOUS               = 129
   967  	ICON_PLAYER_PLAY_BACK              = 130
   968  	ICON_PLAYER_PLAY                   = 131
   969  	ICON_PLAYER_PAUSE                  = 132
   970  	ICON_PLAYER_STOP                   = 133
   971  	ICON_PLAYER_NEXT                   = 134
   972  	ICON_PLAYER_RECORD                 = 135
   973  	ICON_MAGNET                        = 136
   974  	ICON_LOCK_CLOSE                    = 137
   975  	ICON_LOCK_OPEN                     = 138
   976  	ICON_CLOCK                         = 139
   977  	ICON_TOOLS                         = 140
   978  	ICON_GEAR                          = 141
   979  	ICON_GEAR_BIG                      = 142
   980  	ICON_BIN                           = 143
   981  	ICON_HAND_POINTER                  = 144
   982  	ICON_LASER                         = 145
   983  	ICON_COIN                          = 146
   984  	ICON_EXPLOSION                     = 147
   985  	ICON_1UP                           = 148
   986  	ICON_PLAYER                        = 149
   987  	ICON_PLAYER_JUMP                   = 150
   988  	ICON_KEY                           = 151
   989  	ICON_DEMON                         = 152
   990  	ICON_TEXT_POPUP                    = 153
   991  	ICON_GEAR_EX                       = 154
   992  	ICON_CRACK                         = 155
   993  	ICON_CRACK_POINTS                  = 156
   994  	ICON_STAR                          = 157
   995  	ICON_DOOR                          = 158
   996  	ICON_EXIT                          = 159
   997  	ICON_MODE_2D                       = 160
   998  	ICON_MODE_3D                       = 161
   999  	ICON_CUBE                          = 162
  1000  	ICON_CUBE_FACE_TOP                 = 163
  1001  	ICON_CUBE_FACE_LEFT                = 164
  1002  	ICON_CUBE_FACE_FRONT               = 165
  1003  	ICON_CUBE_FACE_BOTTOM              = 166
  1004  	ICON_CUBE_FACE_RIGHT               = 167
  1005  	ICON_CUBE_FACE_BACK                = 168
  1006  	ICON_CAMERA                        = 169
  1007  	ICON_SPECIAL                       = 170
  1008  	ICON_LINK_NET                      = 171
  1009  	ICON_LINK_BOXES                    = 172
  1010  	ICON_LINK_MULTI                    = 173
  1011  	ICON_LINK                          = 174
  1012  	ICON_LINK_BROKE                    = 175
  1013  	ICON_TEXT_NOTES                    = 176
  1014  	ICON_NOTEBOOK                      = 177
  1015  	ICON_SUITCASE                      = 178
  1016  	ICON_SUITCASE_ZIP                  = 179
  1017  	ICON_MAILBOX                       = 180
  1018  	ICON_MONITOR                       = 181
  1019  	ICON_PRINTER                       = 182
  1020  	ICON_PHOTO_CAMERA                  = 183
  1021  	ICON_PHOTO_CAMERA_FLASH            = 184
  1022  	ICON_HOUSE                         = 185
  1023  	ICON_HEART                         = 186
  1024  	ICON_CORNER                        = 187
  1025  	ICON_VERTICAL_BARS                 = 188
  1026  	ICON_VERTICAL_BARS_FILL            = 189
  1027  	ICON_LIFE_BARS                     = 190
  1028  	ICON_INFO                          = 191
  1029  	ICON_CROSSLINE                     = 192
  1030  	ICON_HELP                          = 193
  1031  	ICON_FILETYPE_ALPHA                = 194
  1032  	ICON_FILETYPE_HOME                 = 195
  1033  	ICON_LAYERS_VISIBLE                = 196
  1034  	ICON_LAYERS                        = 197
  1035  	ICON_WINDOW                        = 198
  1036  	ICON_HIDPI                         = 199
  1037  	ICON_FILETYPE_BINARY               = 200
  1038  	ICON_HEX                           = 201
  1039  	ICON_SHIELD                        = 202
  1040  	ICON_FILE_NEW                      = 203
  1041  	ICON_FOLDER_ADD                    = 204
  1042  	ICON_ALARM                         = 205
  1043  	ICON_CPU                           = 206
  1044  	ICON_ROM                           = 207
  1045  	ICON_STEP_OVER                     = 208
  1046  	ICON_STEP_INTO                     = 209
  1047  	ICON_STEP_OUT                      = 210
  1048  	ICON_RESTART                       = 211
  1049  	ICON_BREAKPOINT_ON                 = 212
  1050  	ICON_BREAKPOINT_OFF                = 213
  1051  	ICON_BURGER_MENU                   = 214
  1052  	ICON_CASE_SENSITIVE                = 215
  1053  	ICON_REG_EXP                       = 216
  1054  	ICON_FOLDER                        = 217
  1055  	ICON_FILE                          = 218
  1056  	ICON_219                           = 219
  1057  	ICON_220                           = 220
  1058  	ICON_221                           = 221
  1059  	ICON_222                           = 222
  1060  	ICON_223                           = 223
  1061  	ICON_224                           = 224
  1062  	ICON_225                           = 225
  1063  	ICON_226                           = 226
  1064  	ICON_227                           = 227
  1065  	ICON_228                           = 228
  1066  	ICON_229                           = 229
  1067  	ICON_230                           = 230
  1068  	ICON_231                           = 231
  1069  	ICON_232                           = 232
  1070  	ICON_233                           = 233
  1071  	ICON_234                           = 234
  1072  	ICON_235                           = 235
  1073  	ICON_236                           = 236
  1074  	ICON_237                           = 237
  1075  	ICON_238                           = 238
  1076  	ICON_239                           = 239
  1077  	ICON_240                           = 240
  1078  	ICON_241                           = 241
  1079  	ICON_242                           = 242
  1080  	ICON_243                           = 243
  1081  	ICON_244                           = 244
  1082  	ICON_245                           = 245
  1083  	ICON_246                           = 246
  1084  	ICON_247                           = 247
  1085  	ICON_248                           = 248
  1086  	ICON_249                           = 249
  1087  	ICON_250                           = 250
  1088  	ICON_251                           = 251
  1089  	ICON_252                           = 252
  1090  	ICON_253                           = 253
  1091  	ICON_254                           = 254
  1092  	ICON_255                           = 255
  1093  )
  1094  
  1095  type GuiIconName = int32
  1096  type _Bool int32
  1097  
  1098  type va_list struct {
  1099  	position int
  1100  	Slice    []interface{}
  1101  }
  1102  
  1103  func create_va_list(list []interface{}) *va_list {
  1104  	return &va_list{
  1105  		position: 0,
  1106  		Slice:    list,
  1107  	}
  1108  }
  1109  
  1110  func va_start(v *va_list, count interface{}) {
  1111  	v.position = 0
  1112  }
  1113  
  1114  func va_end(v *va_list) {
  1115  	// do nothing
  1116  }
  1117  
  1118  func va_arg(v *va_list) interface{} {
  1119  	defer func() {
  1120  		v.position++
  1121  	}()
  1122  	value := v.Slice[v.position]
  1123  	switch value.(type) {
  1124  	case int:
  1125  		return int32(value.(int))
  1126  	default:
  1127  		return value
  1128  	}
  1129  }