diff --git a/Doxyfile b/Doxyfile
index 4db17ce62..d4c795a39 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -292,7 +292,19 @@ ALIASES = \
"m_endspan=" \
"m_class{1}=" \
"m_footernavigation=" \
- "m_examplenavigation{2}="
+ "m_examplenavigation{2}=" \
+ "m_keywords{1}=" \
+ "m_keyword{3}=" \
+ "m_enum_values_as_keywords=" \
+ "fn_gl_keyword{1}=@fn_gl{\1}" \
+ "fn_gl2_keyword{2}=@fn_gl2{\1,\2}" \
+ "fn_gl_extension_keyword{3}=@fn_gl_extension{\1,\2,\3}" \
+ "def_gl_keyword{1}=@def_gl{\1}" \
+ "def_gl_extension_keyword{3}=@def_gl_extension{\1,\2,\3}" \
+ "fn_al_keyword{1}=@fn_al{\1}" \
+ "fn_alc_keyword{1}=@fn_alc{\1}" \
+ "def_al_keyword{1}=@def_al{\1}" \
+ "def_alc_keyword{1}=@def_alc{\1}"
# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class"
diff --git a/Doxyfile-mcss b/Doxyfile-mcss
index d44bf1b62..f2fd9e20e 100644
--- a/Doxyfile-mcss
+++ b/Doxyfile-mcss
@@ -71,7 +71,19 @@ ALIASES = \
"m_endspan=@xmlonly@endxmlonly" \
"m_class{1}=@xmlonly@endxmlonly" \
"m_footernavigation=@xmlonly@endxmlonly" \
- "m_examplenavigation{2}=@xmlonly@endxmlonly"
+ "m_examplenavigation{2}=@xmlonly@endxmlonly" \
+ "m_keywords{1}=@xmlonly@endxmlonly" \
+ "m_keyword{3}=@xmlonly@endxmlonly" \
+ "m_enum_values_as_keywords=@xmlonly@endxmlonly" \
+ "fn_gl_keyword{1}=@xmlonly@endxmlonly @fn_gl{\1}" \
+ "fn_gl2_keyword{2}=@xmlonly@endxmlonly @fn_gl2{\1,\2}" \
+ "fn_gl_extension_keyword{3}=@xmlonly@endxmlonly @fn_gl_extension{\1,\2,\3}" \
+ "def_gl_keyword{1}=@xmlonly@endxmlonly @def_gl{\1}" \
+ "def_gl_extension_keyword{3}=@xmlonly@endxmlonly @def_gl_extension{\1,\2,\3}" \
+ "fn_al_keyword{1}=@xmlonly@endxmlonly @fn_al{\1}" \
+ "fn_alc_keyword{1}=@xmlonly@endxmlonly @fn_alc{\1}" \
+ "def_al_keyword{1}=@xmlonly@endxmlonly @def_al{\1}" \
+ "def_alc_keyword{1}=@xmlonly@endxmlonly @def_alc{\1}"
HTML_EXTRA_STYLESHEET = \
https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,600i%7CSource+Code+Pro:400,400i,600&subset=latin-ext \
diff --git a/Doxyfile-public b/Doxyfile-public
index f528ce5bf..5913c6e98 100644
--- a/Doxyfile-public
+++ b/Doxyfile-public
@@ -68,7 +68,19 @@ ALIASES = \
"m_endspan=@xmlonly@endxmlonly" \
"m_class{1}=@xmlonly@endxmlonly" \
"m_footernavigation=@xmlonly@endxmlonly" \
- "m_examplenavigation{2}=@xmlonly@endxmlonly"
+ "m_examplenavigation{2}=@xmlonly@endxmlonly" \
+ "m_keywords{1}=@xmlonly@endxmlonly" \
+ "m_keyword{3}=@xmlonly@endxmlonly" \
+ "m_enum_values_as_keywords=@xmlonly@endxmlonly" \
+ "fn_gl_keyword{1}=@xmlonly@endxmlonly @fn_gl{\1}" \
+ "fn_gl2_keyword{2}=@xmlonly@endxmlonly @fn_gl2{\1,\2}" \
+ "fn_gl_extension_keyword{3}=@xmlonly@endxmlonly @fn_gl_extension{\1,\2,\3}" \
+ "def_gl_keyword{1}=@xmlonly@endxmlonly @def_gl{\1}" \
+ "def_gl_extension_keyword{3}=@xmlonly@endxmlonly @def_gl_extension{\1,\2,\3}" \
+ "fn_al_keyword{1}=@xmlonly@endxmlonly @fn_al{\1}" \
+ "fn_alc_keyword{1}=@xmlonly@endxmlonly @fn_alc{\1}" \
+ "def_al_keyword{1}=@xmlonly@endxmlonly @def_al{\1}" \
+ "def_alc_keyword{1}=@xmlonly@endxmlonly @def_alc{\1}"
GENERATE_TODOLIST = NO
GENERATE_BUGLIST = NO
diff --git a/doc/coding-style.dox b/doc/coding-style.dox
index e8b145c61..f709a09ff 100644
--- a/doc/coding-style.dox
+++ b/doc/coding-style.dox
@@ -90,10 +90,16 @@ appropriately mark the class/function
@subsection coding-style-documentation-commands Special documentation commands
Additionally to @c \@todoc, @c \@debugoperator, @c \@debugoperatorenum,
-@c \@debugoperatorclassenum, @c \@configurationvalue and
-@c \@configurationvalueref defined @ref corrade-coding-style-documentation-commands "the same as in Corrade",
+@c \@debugoperatorclassenum, @c \@configurationvalue, @c \@configurationvalueref,
+@c \@cb, @c \@ce, @c \@cpp, @c \@cmake defined @ref corrade-coding-style-documentation-commands "the same as in Corrade"
+and all @c \@m_* commands from the [m.css theme](http://mcss.mosra.cz/doxygen/#theme-specific-commands),
these are defined:
+@subsubsection coding-style-documentation-commands-code Code
+
+The @c \@glsl command expands to \@cb{.glsl}, making it possible to
+have inline highlighted GLSL code snippets, similarly to @c \@cpp and @c \@cmake.
+
@subsubsection coding-style-documentation-commands-collisionoperator Shape collision operators
Out-of-class operators for collision and collision occurence in Shapes
@@ -156,6 +162,16 @@ It produces a link to the online manual:
@fn_gl{Enable}/@fn_gl{Disable} with @def_gl{TEXTURE_CUBE_MAP_SEAMLESS}
+Some functions are documented together in a single page. For this case
+there's the @c \@fn_gl2 command that takes the actual page name as second
+parameter:
+
+@snippet coding-style.h fn_gl2
+
+
+@fn_gl2_keyword{CopyTextureSubImage2D,CopyTexSubImage2D}
+
+
For functions which are not part of OpenGL core specification, but only as
extensions, use @c \@fn_gl_extension command, e.g.
@@ -180,6 +196,14 @@ Produces:
@fn_al{Listenerfv} with @def_al{VELOCITY}
+There are additional commands that combine @c \@fn_* / @c \@def_* and
+@c \@m_keywords together (i.e., provide a link to given GL/AL API and also add
+that name as an search keyword for current documented symbol). In particular,
+it's @c \@fn_gl_keyword, @c \@fn_gl2_keyword, @c \@def_gl_keyword,
+@c \@fn_al_keyword, @c \@fn_alc_keyword, @c \@def_al_keyword and
+@c \@def_alc_keyword. Their usage is equivalent to usage of commands without
+the `_keyword` suffix.
+
@subsubsection coding-style-documentation-commands-requires Classes and functions requiring specific OpenGL, OpenAL version or extensions
If any class or function requires specific OpenGL version above 2.1, it should
diff --git a/doc/snippets/coding-style.h b/doc/snippets/coding-style.h
index e4c6236b6..611844e63 100644
--- a/doc/snippets/coding-style.h
+++ b/doc/snippets/coding-style.h
@@ -40,6 +40,10 @@ static void setSeamless(bool enabled) {
}
/* [fn_gl] */
+/* [fn_gl2] */
+/** @fn_gl2_keyword{CopyTextureSubImage2D,CopyTexSubImage2D} */
+/* [fn_gl2] */
+
/* [fn_gl_extension] */
/** @fn_gl_extension{NamedCopyBufferSubData,EXT,direct_state_access} */
/* [fn_gl_extension] */