<commit_before>#pragma once

#include <string>
#include <vector>
#include <array>

#include <GL/glew.h>

#include <glow/glow.h>
#include <glow/Version.h>

namespace glow 
{

class AbstractStringSource;

GLOW_API bool isInitialized();
GLOW_API bool init(bool showWarnings = false);

GLOW_API std::string getString(GLenum pname);
GLOW_API std::string getString(GLenum pname, GLuint index);

GLOW_API GLint getInteger(GLenum pname);
GLOW_API GLenum getEnum(GLenum pname);
GLOW_API GLfloat getFloat(GLenum pname);
GLOW_API GLdouble getDouble(GLenum pname);
GLOW_API GLboolean getBoolean(GLenum pname);

GLOW_API GLint getInteger(GLenum pname, GLuint index);
GLOW_API GLenum getEnum(GLenum pname, GLuint index);
GLOW_API GLfloat getFloat(GLenum pname, GLuint index);
GLOW_API GLdouble getDouble(GLenum pname, GLuint index);
GLOW_API GLboolean getBoolean(GLenum pname, GLuint index);

GLOW_API std::string vendor();
GLOW_API std::string renderer();
GLOW_API std::string versionString();
GLOW_API GLint majorVersion();
GLOW_API GLint minorVersion();
GLOW_API Version version();
GLOW_API bool isCoreProfile();

GLOW_API std::vector<std::string> getExtensions();

template <int Count>
GLOW_API std::array<GLint, Count> getIntegers(GLenum pname);
template <int Count>
GLOW_API std::array<GLfloat, Count> getFloats(GLenum pname);
template <int Count>
GLOW_API std::array<GLdouble, Count> getDoubles(GLenum pname);
template <int Count>
GLOW_API std::array<GLboolean, Count> getBooleans(GLenum pname);

GLOW_API void createNamedString(const std::string& name, const std::string& string, GLenum type = GL_SHADER_INCLUDE_ARB);
GLOW_API void createNamedString(const std::string& name, AbstractStringSource* source, GLenum type = GL_SHADER_INCLUDE_ARB);
GLOW_API void deleteNamedString(const std::string& name);
GLOW_API bool isNamedString(const std::string& name, bool cached = false);
GLOW_API std::string getNamedString(const std::string& name, bool cached = false);
GLOW_API AbstractStringSource* getNamedStringSource(const std::string& name);
GLOW_API GLenum getNamedStringType(const std::string& name, bool cached = false);

GLOW_API void enable(GLenum capability);<commit_msg>Fix compile warning on Windows: C4273: 'glow::getIntegers' : inconsistent dll linkage<commit_after>#pragma once

#include <string>
#include <vector>
#include <array>

#include <GL/glew.h>

#include <glow/glow.h>
#include <glow/Version.h>

namespace glow 
{

class AbstractStringSource;

GLOW_API bool isInitialized();
GLOW_API bool init(bool showWarnings = false);

GLOW_API std::string getString(GLenum pname);
GLOW_API std::string getString(GLenum pname, GLuint index);

GLOW_API GLint getInteger(GLenum pname);
GLOW_API GLenum getEnum(GLenum pname);
GLOW_API GLfloat getFloat(GLenum pname);
GLOW_API GLdouble getDouble(GLenum pname);
GLOW_API GLboolean getBoolean(GLenum pname);

GLOW_API GLint getInteger(GLenum pname, GLuint index);
GLOW_API GLenum getEnum(GLenum pname, GLuint index);
GLOW_API GLfloat getFloat(GLenum pname, GLuint index);
GLOW_API GLdouble getDouble(GLenum pname, GLuint index);
GLOW_API GLboolean getBoolean(GLenum pname, GLuint index);

GLOW_API std::string vendor();
GLOW_API std::string renderer();
GLOW_API std::string versionString();
GLOW_API GLint majorVersion();
GLOW_API GLint minorVersion();
GLOW_API Version version();
GLOW_API bool isCoreProfile();

GLOW_API std::vector<std::string> getExtensions();

template <int Count>
std::array<GLint, Count> getIntegers(GLenum pname);
template <int Count>
std::array<GLfloat, Count> getFloats(GLenum pname);
template <int Count>
std::array<GLdouble, Count> getDoubles(GLenum pname);
template <int Count>
std::array<GLboolean, Count> getBooleans(GLenum pname);

GLOW_API void createNamedString(const std::string& name, const std::string& string, GLenum type = GL_SHADER_INCLUDE_ARB);
GLOW_API void createNamedString(const std::string& name, AbstractStringSource* source, GLenum type = GL_SHADER_INCLUDE_ARB);
GLOW_API void deleteNamedString(const std::string& name);
GLOW_API bool isNamedString(const std::string& name, bool cached = false);
GLOW_API std::string getNamedString(const std::string& name, bool cached = false);
GLOW_API AbstractStringSource* getNamedStringSource(const std::string& name);
GLOW_API GLenum getNamedStringType(const std::string& name, bool cached = false);

GLOW_API void enable(GLenum capability);
{'fraction_non_alphanumeric': 0.10370879120879122, 'fraction_numerical': 0.0009157509157509158, 'mean_word_length': 8.436285097192224, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 33, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2866758', 'n_tokens_mistral': 1454, 'n_tokens_neox': 1450, 'n_words': 406}