18.6 KB、187行 生 Blame 履歴
1//
2// Glsl
3//
4
5const TextEditor::Language& Glsl() {
6 static bool initialized = false;
7 static TextEditor::Language language;
8
9 if (!initialized) {
10 language = TextEditor::Language::Glsl();
11
12 // source: https://registry.khronos.org/OpenGL/specs/gl/GLSLangSpec.4.60.html
13 static const char* const identifiers[] = {
14 "abs", "acos", "acosh", "all", "any", "asin", "asinh", "atan", "atanh", "atomicAdd", "atomicAnd", "atomicCompSwap",
15 "atomicCounter", "atomicCounterDecrement", "atomicCounterIncrement", "atomicExchange", "atomicMax", "atomicMin",
16 "atomicOr", "atomicXor", "barrier", "bitCount", "bitfieldExtract", "bitfieldInsert" "bitfieldReverse", "ceil", "clamp",
17 "cos", "cosh", "cross", "degrees", "determinant", "dFdx", "dFdxCoarse", "dFdxFine", "dFdy", "dFdyCoarse", "dFdyFine",
18 "distance", "dot", "EmitStreamVertex", "EmitVertex", "EndPrimitive", "EndStreamPrimitive", "equal", "exp", "exp2",
19 "faceforward", "findLSB", "findMSB", "floatBitsToInt", "floatBitsToUint", "floor", "fma", "fract", "frexp", "fwidth",
20 "fwidthCoarse", "fwidthFine", "glActiveShaderProgram", "glActiveTexture", "glAttachShader", "glBeginConditionalRender",
21 "glBeginQuery", "glBeginQueryIndexed", "glBeginTransformFeedback", "glBindAttribLocation", "glBindBuffer",
22 "glBindBufferBase", "glBindBufferRange", "glBindBuffersBase", "glBindBuffersRange", "glBindFragDataLocation",
23 "glBindFragDataLocationIndexed", "glBindFramebuffer", "glBindImageTexture", "glBindImageTextures",
24 "glBindProgramPipeline", "glBindRenderbuffer", "glBindSampler", "glBindSamplers", "glBindTexture", "glBindTextures",
25 "glBindTextureUnit", "glBindTransformFeedback", "glBindVertexArray", "glBindVertexBuffer", "glBindVertexBuffers",
26 "glBlendColor", "glBlendEquation", "glBlendEquationi", "glBlendEquationSeparate", "glBlendEquationSeparatei",
27 "glBlendFunc", "glBlendFunci", "glBlendFuncSeparate", "glBlendFuncSeparatei", "glBlitFramebuffer",
28 "glBlitNamedFramebuffer", "glBufferData", "glBufferStorage", "glBufferSubData", "glCheckFramebufferStatus",
29 "glCheckNamedFramebufferStatus", "glClampColor", "glClear", "glClearBuffer", "glClearBufferData", "glClearBufferfi",
30 "glClearBufferfv", "glClearBufferiv", "glClearBufferSubData", "glClearBufferuiv", "glClearColor", "glClearDepth",
31 "glClearDepthf", "glClearNamedBufferData", "glClearNamedBufferSubData", "glClearNamedFramebufferfi",
32 "glClearNamedFramebufferfv", "glClearNamedFramebufferiv", "glClearNamedFramebufferuiv", "glClearStencil",
33 "glClearTexImage", "glClearTexSubImage", "glClientWaitSync", "glClipControl", "glColorMask", "glColorMaski",
34 "glCompileShader", "glCompressedTexImage1D", "glCompressedTexImage2D", "glCompressedTexImage3D",
35 "glCompressedTexSubImage1D", "glCompressedTexSubImage2D", "glCompressedTexSubImage3D", "glCompressedTextureSubImage1D",
36 "glCompressedTextureSubImage2D", "glCompressedTextureSubImage3D", "glCopyBufferSubData", "glCopyImageSubData",
37 "glCopyNamedBufferSubData", "glCopyTexImage1D", "glCopyTexImage2D", "glCopyTexSubImage1D", "glCopyTexSubImage2D",
38 "glCopyTexSubImage3D", "glCopyTextureSubImage1D", "glCopyTextureSubImage2D", "glCopyTextureSubImage3D",
39 "glCreateBuffers", "glCreateFramebuffers", "glCreateProgram", "glCreateProgramPipelines", "glCreateQueries",
40 "glCreateRenderbuffers", "glCreateSamplers", "glCreateShader", "glCreateShaderProgram", "glCreateShaderProgramv",
41 "glCreateTextures", "glCreateTransformFeedbacks", "glCreateVertexArrays", "glCullFace", "glDebugMessageCallback",
42 "glDebugMessageControl", "glDebugMessageInsert", "glDeleteBuffers", "glDeleteFramebuffers", "glDeleteProgram",
43 "glDeleteProgramPipelines", "glDeleteQueries", "glDeleteRenderbuffers", "glDeleteSamplers", "glDeleteShader",
44 "glDeleteSync", "glDeleteTextures", "glDeleteTransformFeedbacks", "glDeleteVertexArrays", "glDepthFunc", "glDepthMask",
45 "glDepthRange", "glDepthRangeArray", "glDepthRangeArrayv", "glDepthRangef", "glDepthRangeIndexed", "glDetachShader",
46 "glDisable", "glDisablei", "glDisableVertexArrayAttrib", "glDisableVertexAttribArray", "glDispatchCompute",
47 "glDispatchComputeIndirect", "glDrawArrays", "glDrawArraysIndirect", "glDrawArraysInstanced",
48 "glDrawArraysInstancedBaseInstance", "glDrawBuffer", "glDrawBuffers", "glDrawElements", "glDrawElementsBaseVertex",
49 "glDrawElementsIndirect", "glDrawElementsInstanced", "glDrawElementsInstancedBaseInstance",
50 "glDrawElementsInstancedBaseVertex", "glDrawElementsInstancedBaseVertexBaseInstance", "glDrawRangeElements",
51 "glDrawRangeElementsBaseVertex", "glDrawTransformFeedback", "glDrawTransformFeedbackInstanced",
52 "glDrawTransformFeedbackStream", "glDrawTransformFeedbackStreamInstanced", "glEnable", "glEnablei",
53 "glEnableVertexArrayAttrib", "glEnableVertexAttribArray", "glEndConditionalRender", "glEndQuery", "glEndQueryIndexed",
54 "glEndTransformFeedback", "glFenceSync", "glFinish", "glFlush", "glFlushMappedBufferRange",
55 "glFlushMappedNamedBufferRange", "glFramebufferParameteri", "glFramebufferParameteri", "glFramebufferRenderbuffer",
56 "glFramebufferTexture", "glFramebufferTexture1D", "glFramebufferTexture2D", "glFramebufferTexture3D",
57 "glFramebufferTextureLayer", "glFrontFace", "glGenBuffers", "glGenerateMipmap", "glGenerateTextureMipmap",
58 "glGenFramebuffers", "glGenProgramPipelines", "glGenQueries", "glGenRenderbuffers", "glGenSamplers", "glGenTextures",
59 "glGenTransformFeedbacks", "glGenVertexArrays", "glGet", "glGetActiveAtomicCounterBufferiv", "glGetActiveAttrib",
60 "glGetActiveSubroutineName", "glGetActiveSubroutineUniform", "glGetActiveSubroutineUniformiv",
61 "glGetActiveSubroutineUniformName", "glGetActiveUniform", "glGetActiveUniformBlock", "glGetActiveUniformBlockiv",
62 "glGetActiveUniformBlockName", "glGetActiveUniformName", "glGetActiveUniformsiv", "glGetAttachedShaders",
63 "glGetAttribLocation", "glGetBooleani_v", "glGetBooleanv", "glGetBufferParameter", "glGetBufferParameteri64v",
64 "glGetBufferParameteriv", "glGetBufferPointerv", "glGetBufferSubData", "glGetCompressedTexImage",
65 "glGetCompressedTextureImage", "glGetCompressedTextureSubImage", "glGetDebugMessageLog", "glGetDoublei_v",
66 "glGetDoublev", "glGetError", "glGetFloati_v", "glGetFloatv", "glGetFragDataIndex", "glGetFragDataLocation",
67 "glGetFramebufferAttachmentParameter", "glGetFramebufferAttachmentParameteriv", "glGetFramebufferParameter",
68 "glGetFramebufferParameteriv", "glGetGraphicsResetStatus", "glGetInteger64i_v", "glGetInteger64v", "glGetIntegeri_v",
69 "glGetIntegerv", "glGetInternalformat", "glGetInternalformati64v", "glGetInternalformativ", "glGetMultisample",
70 "glGetMultisamplefv", "glGetNamedBufferParameteri64v", "glGetNamedBufferParameteriv", "glGetNamedBufferPointerv",
71 "glGetNamedBufferSubData", "glGetNamedFramebufferAttachmentParameteriv", "glGetNamedFramebufferParameteriv",
72 "glGetNamedRenderbufferParameteriv", "glGetnCompressedTexImage", "glGetnTexImage", "glGetnUniformdv", "glGetnUniformfv",
73 "glGetnUniformiv", "glGetnUniformuiv", "glGetObjectLabel", "glGetObjectPtrLabel", "glGetPointerv", "glGetProgram",
74 "glGetProgramBinary", "glGetProgramInfoLog", "glGetProgramInterface", "glGetProgramInterfaceiv", "glGetProgramiv",
75 "glGetProgramPipeline", "glGetProgramPipelineInfoLog", "glGetProgramPipelineiv", "glGetProgramResource",
76 "glGetProgramResourceIndex", "glGetProgramResourceiv", "glGetProgramResourceLocation",
77 "glGetProgramResourceLocationIndex", "glGetProgramResourceName", "glGetProgramStage", "glGetProgramStageiv",
78 "glGetQueryBufferObjecti64v", "glGetQueryBufferObjectiv", "glGetQueryBufferObjectui64v", "glGetQueryBufferObjectuiv",
79 "glGetQueryIndexed", "glGetQueryIndexediv", "glGetQueryiv", "glGetQueryObject", "glGetQueryObjecti64v",
80 "glGetQueryObjectiv", "glGetQueryObjectui64v", "glGetQueryObjectuiv", "glGetRenderbufferParameter",
81 "glGetRenderbufferParameteriv", "glGetSamplerParameter", "glGetSamplerParameterfv", "glGetSamplerParameterIiv",
82 "glGetSamplerParameterIuiv", "glGetSamplerParameteriv", "glGetShader", "glGetShaderInfoLog", "glGetShaderiv",
83 "glGetShaderPrecisionFormat", "glGetShaderSource", "glGetString", "glGetStringi", "glGetSubroutineIndex",
84 "glGetSubroutineUniformLocation", "glGetSync", "glGetSynciv", "glGetTexImage", "glGetTexLevelParameter",
85 "glGetTexLevelParameterfv", "glGetTexLevelParameteriv", "glGetTexParameter", "glGetTexParameterfv",
86 "glGetTexParameterIiv", "glGetTexParameterIuiv", "glGetTexParameteriv", "glGetTextureImage",
87 "glGetTextureLevelParameterfv", "glGetTextureLevelParameteriv", "glGetTextureParameterfv", "glGetTextureParameterIiv",
88 "glGetTextureParameterIuiv", "glGetTextureParameteriv", "glGetTextureSubImage", "glGetTransformFeedback",
89 "glGetTransformFeedbacki64_v", "glGetTransformFeedbackiv", "glGetTransformFeedbacki_v", "glGetTransformFeedbackVarying",
90 "glGetUniform", "glGetUniformBlockIndex", "glGetUniformdv", "glGetUniformfv", "glGetUniformIndices", "glGetUniformiv",
91 "glGetUniformLocation", "glGetUniformSubroutine", "glGetUniformSubroutineuiv", "glGetUniformuiv",
92 "glGetVertexArrayIndexed", "glGetVertexArrayIndexed64iv", "glGetVertexArrayIndexediv", "glGetVertexArrayiv",
93 "glGetVertexAttrib", "glGetVertexAttribdv", "glGetVertexAttribfv", "glGetVertexAttribIiv", "glGetVertexAttribIuiv",
94 "glGetVertexAttribiv", "glGetVertexAttribLdv", "glGetVertexAttribPointerv", "glHint", "glInvalidateBufferData",
95 "glInvalidateBufferSubData", "glInvalidateFramebuffer", "glInvalidateNamedFramebufferData",
96 "glInvalidateNamedFramebufferSubData", "glInvalidateSubFramebuffer", "glInvalidateTexImage", "glInvalidateTexSubImage",
97 "glIsBuffer", "glIsEnabled", "glIsEnabledi", "glIsFramebuffer", "glIsProgram", "glIsProgramPipeline", "glIsQuery",
98 "glIsRenderbuffer", "glIsSampler", "glIsShader", "glIsSync", "glIsTexture", "glIsTransformFeedback", "glIsVertexArray",
99 "glLineWidth", "glLinkProgram", "glLogicOp", "glMapBuffer", "glMapBufferRange", "glMapNamedBuffer",
100 "glMapNamedBufferRange", "glMemoryBarrier", "glMemoryBarrierByRegion", "glMinSampleShading", "glMultiDrawArrays",
101 "glMultiDrawArraysIndirect", "glMultiDrawElements", "glMultiDrawElementsBaseVertex", "glMultiDrawElementsIndirect",
102 "glNamedBufferData", "glNamedBufferStorage", "glNamedBufferSubData", "glNamedFramebufferDrawBuffer",
103 "glNamedFramebufferDrawBuffers", "glNamedFramebufferParameteri", "glNamedFramebufferParameteri",
104 "glNamedFramebufferReadBuffer", "glNamedFramebufferRenderbuffer", "glNamedFramebufferTexture",
105 "glNamedFramebufferTextureLayer", "glNamedRenderbufferStorage", "glNamedRenderbufferStorageMultisample",
106 "glObjectLabel", "glObjectPtrLabel", "glPatchParameter", "glPatchParameterfv", "glPatchParameteri",
107 "glPauseTransformFeedback", "glPixelStore", "glPixelStoref", "glPixelStorei", "glPointParameter", "glPointParameterf",
108 "glPointParameterfv", "glPointParameteri", "glPointParameteriv", "glPointSize", "glPolygonMode", "glPolygonOffset",
109 "glPopDebugGroup", "glPrimitiveRestartIndex", "glProgramBinary", "glProgramParameter", "glProgramParameteri",
110 "glProgramUniform", "glProgramUniform1f", "glProgramUniform1fv", "glProgramUniform1i", "glProgramUniform1iv",
111 "glProgramUniform1ui", "glProgramUniform1uiv", "glProgramUniform2f", "glProgramUniform2fv", "glProgramUniform2i",
112 "glProgramUniform2iv", "glProgramUniform2ui", "glProgramUniform2uiv", "glProgramUniform3f", "glProgramUniform3fv",
113 "glProgramUniform3i", "glProgramUniform3iv", "glProgramUniform3ui", "glProgramUniform3uiv", "glProgramUniform4f",
114 "glProgramUniform4fv", "glProgramUniform4i", "glProgramUniform4iv", "glProgramUniform4ui", "glProgramUniform4uiv",
115 "glProgramUniformMatrix2fv", "glProgramUniformMatrix2x3fv", "glProgramUniformMatrix2x4fv", "glProgramUniformMatrix3fv",
116 "glProgramUniformMatrix3x2fv", "glProgramUniformMatrix3x4fv", "glProgramUniformMatrix4fv",
117 "glProgramUniformMatrix4x2fv", "glProgramUniformMatrix4x3fv", "glProvokingVertex", "glPushDebugGroup", "glQueryCounter",
118 "glReadBuffer", "glReadnPixels", "glReadPixels", "glReleaseShaderCompiler", "glRenderbufferStorage",
119 "glRenderbufferStorageMultisample", "glResumeTransformFeedback", "glSampleCoverage", "glSampleMaski",
120 "glSamplerParameter", "glSamplerParameterf", "glSamplerParameterfv", "glSamplerParameteri", "glSamplerParameterIiv",
121 "glSamplerParameterIuiv", "glSamplerParameteriv", "glScissor", "glScissorArray", "glScissorArrayv", "glScissorIndexed",
122 "glScissorIndexedv", "glShaderBinary", "glShaderSource", "glShaderStorageBlockBinding", "glStencilFunc",
123 "glStencilFuncSeparate", "glStencilMask", "glStencilMaskSeparate", "glStencilOp", "glStencilOpSeparate", "glTexBuffer",
124 "glTexBufferRange", "glTexImage1D", "glTexImage2D", "glTexImage2DMultisample", "glTexImage3D",
125 "glTexImage3DMultisample", "glTexParameter", "glTexParameterf", "glTexParameterfv", "glTexParameteri",
126 "glTexParameterIiv", "glTexParameterIuiv", "glTexParameteriv", "glTexStorage1D", "glTexStorage2D",
127 "glTexStorage2DMultisample", "glTexStorage3D", "glTexStorage3DMultisample", "glTexSubImage1D", "glTexSubImage2D",
128 "glTexSubImage3D", "glTextureBarrier", "glTextureBuffer", "glTextureBufferRange", "glTextureParameterf",
129 "glTextureParameterfv", "glTextureParameteri", "glTextureParameterIiv", "glTextureParameterIuiv",
130 "glTextureParameteriv", "glTextureStorage1D", "glTextureStorage2D", "glTextureStorage2DMultisample",
131 "glTextureStorage3D", "glTextureStorage3DMultisample", "glTextureSubImage1D", "glTextureSubImage2D",
132 "glTextureSubImage3D", "glTextureView", "glTransformFeedbackBufferBase", "glTransformFeedbackBufferRange",
133 "glTransformFeedbackVaryings", "glUniform", "glUniform1f", "glUniform1fv", "glUniform1i", "glUniform1iv",
134 "glUniform1ui", "glUniform1uiv", "glUniform2f", "glUniform2fv", "glUniform2i", "glUniform2iv", "glUniform2ui",
135 "glUniform2uiv", "glUniform3f", "glUniform3fv", "glUniform3i", "glUniform3iv", "glUniform3ui", "glUniform3uiv",
136 "glUniform4f", "glUniform4fv", "glUniform4i", "glUniform4iv", "glUniform4ui", "glUniform4uiv", "glUniformBlockBinding",
137 "glUniformMatrix2fv", "glUniformMatrix2x3fv", "glUniformMatrix2x4fv", "glUniformMatrix3fv", "glUniformMatrix3x2fv",
138 "glUniformMatrix3x4fv", "glUniformMatrix4fv", "glUniformMatrix4x2fv", "glUniformMatrix4x3fv", "glUniformSubroutines",
139 "glUniformSubroutinesuiv", "glUnmapBuffer", "glUnmapNamedBuffer", "glUseProgram", "glUseProgramStages",
140 "glValidateProgram", "glValidateProgramPipeline", "glVertexArrayAttribBinding", "glVertexArrayAttribFormat",
141 "glVertexArrayAttribIFormat", "glVertexArrayAttribLFormat", "glVertexArrayBindingDivisor", "glVertexArrayElementBuffer",
142 "glVertexArrayVertexBuffer", "glVertexArrayVertexBuffers", "glVertexAttrib", "glVertexAttrib1d", "glVertexAttrib1dv",
143 "glVertexAttrib1f", "glVertexAttrib1fv", "glVertexAttrib1s", "glVertexAttrib1sv", "glVertexAttrib2d",
144 "glVertexAttrib2dv", "glVertexAttrib2f", "glVertexAttrib2fv", "glVertexAttrib2s", "glVertexAttrib2sv",
145 "glVertexAttrib3d", "glVertexAttrib3dv", "glVertexAttrib3f", "glVertexAttrib3fv", "glVertexAttrib3s",
146 "glVertexAttrib3sv", "glVertexAttrib4bv", "glVertexAttrib4d", "glVertexAttrib4dv", "glVertexAttrib4f",
147 "glVertexAttrib4fv", "glVertexAttrib4iv", "glVertexAttrib4Nbv", "glVertexAttrib4Niv", "glVertexAttrib4Nsv",
148 "glVertexAttrib4Nub", "glVertexAttrib4Nubv", "glVertexAttrib4Nuiv", "glVertexAttrib4Nusv", "glVertexAttrib4s",
149 "glVertexAttrib4sv", "glVertexAttrib4ubv", "glVertexAttrib4uiv", "glVertexAttrib4usv", "glVertexAttribBinding",
150 "glVertexAttribDivisor", "glVertexAttribFormat", "glVertexAttribI1i", "glVertexAttribI1iv", "glVertexAttribI1ui",
151 "glVertexAttribI1uiv", "glVertexAttribI2i", "glVertexAttribI2iv", "glVertexAttribI2ui", "glVertexAttribI2uiv",
152 "glVertexAttribI3i", "glVertexAttribI3iv", "glVertexAttribI3ui", "glVertexAttribI3uiv", "glVertexAttribI4bv",
153 "glVertexAttribI4i", "glVertexAttribI4iv", "glVertexAttribI4sv", "glVertexAttribI4ubv", "glVertexAttribI4ui",
154 "glVertexAttribI4uiv", "glVertexAttribI4usv", "glVertexAttribIFormat", "glVertexAttribIPointer", "glVertexAttribL1d",
155 "glVertexAttribL1dv", "glVertexAttribL2d", "glVertexAttribL2dv", "glVertexAttribL3d", "glVertexAttribL3dv",
156 "glVertexAttribL4d", "glVertexAttribL4dv", "glVertexAttribLFormat", "glVertexAttribLPointer", "glVertexAttribP1ui",
157 "glVertexAttribP2ui", "glVertexAttribP3ui", "glVertexAttribP4ui", "glVertexAttribPointer", "glVertexBindingDivisor",
158 "glViewport", "glViewportArray", "glViewportArrayv", "glViewportIndexed", "glViewportIndexedf", "glViewportIndexedfv",
159 "glWaitSync", "gl_ClipDistance", "gl_CullDistance", "gl_FragCoord", "gl_FragDepth", "gl_FrontFacing",
160 "gl_GlobalInvocationID", "gl_HelperInvocation", "gl_InstanceID", "gl_InvocationID", "gl_Layer", "gl_LocalInvocationID",
161 "gl_LocalInvocationIndex", "gl_NumSamples", "gl_NumWorkGroups", "gl_PatchVerticesIn", "gl_PointCoord", "gl_PointSize",
162 "gl_Position", "gl_PrimitiveID", "gl_PrimitiveIDIn", "gl_SampleID", "gl_SampleMask", "gl_SampleMaskIn",
163 "gl_SamplePosition", "gl_TessCoord", "gl_TessLevelInner", "gl_TessLevelOuter", "gl_VertexID", "gl_ViewportIndex",
164 "gl_WorkGroupID", "gl_WorkGroupSize", "greaterThan", "greaterThanEqual", "groupMemoryBarrier", "imageAtomicAdd",
165 "imageAtomicAnd", "imageAtomicCompSwap", "imageAtomicExchange", "imageAtomicMax", "imageAtomicMin", "imageAtomicOr",
166 "imageAtomicXor", "imageLoad", "imageSamples", "imageSize", "imageStore", "imulExtended", "intBitsToFloat",
167 "interpolateAtCentroid", "interpolateAtOffset", "interpolateAtSample", "inverse", "inversesqrt", "isinf", "isnan",
168 "ldexp", "length", "lessThan", "lessThanEqual", "log", "log2", "matrixCompMult", "max", "memoryBarrier",
169 "memoryBarrierAtomicCounter", "memoryBarrierBuffer", "memoryBarrierImage", "memoryBarrierShared", "min", "mix", "mod",
170 "modf", "noise", "noise1", "noise2", "noise3", "noise4", "normalize", "not", "notEqual", "outerProduct",
171 "packDouble2x32", "packHalf2x16", "packSnorm2x16", "packSnorm4x8", "packUnorm", "packUnorm2x16", "packUnorm4x8", "pow",
172 "radians", "reflect", "refract", "removedTypes", "round", "roundEven", "sign", "sin", "sinh", "smoothstep", "sqrt",
173 "step", "tan", "tanh", "texelFetch", "texelFetchOffset", "texture", "textureGather", "textureGatherOffset",
174 "textureGatherOffsets", "textureGrad", "textureGradOffset", "textureLod", "textureLodOffset", "textureOffset",
175 "textureProj", "textureProjGrad", "textureProjGradOffset", "textureProjLod", "textureProjLodOffset",
176 "textureProjOffset", "textureQueryLevels", "textureQueryLod", "textureSamples", "textureSize", "transpose", "trunc",
177 "uaddCarry", "uintBitsToFloat", "umulExtended", "unpackDouble2x32", "unpackHalf2x16", "unpackSnorm2x16",
178 "unpackSnorm4x8", "unpackUnorm", "unpackUnorm2x16", "unpackUnorm4x8", "usubBorrow"
179 };
180
181 language.identifiers.clear();
182 for (auto& identifier : identifiers) { language.identifiers.insert(identifier); }
183 initialized = true;
184 }
185
186 return language;
187}