<commit_before>#pragma once

#include "pointers.hpp"
#include "texture.hpp"
#include "uniform_value.hpp"

#include "../std/vector.hpp"

class GLState
{
public:
  GLState(uint32_t gpuProgramIndex, int16_t depthLayer, const TextureBinding & texture);

  int GetProgramIndex() const;
  const TextureBinding & GetTextureBinding() const;
  TextureBinding & GetTextureBinding();
  const vector<UniformValue> & GetUniformValues() const;
  vector<UniformValue> & GetUniformValues();

  bool operator<(const GLState & other) const
  {
    return m_depthLayer < other.m_depthLayer
        || m_gpuProgramIndex < other.m_gpuProgramIndex
        || m_texture < other.m_texture
        || m_uniforms < other.m_uniforms;
  }

private:
  uint32_t m_gpuProgramIndex;
  uint16_t m_depthLayer;
  TextureBinding m_texture;
  vector<UniformValue> m_uniforms;
};

void ApplyState(GLState state, ReferencePoiner<GpuProgram> program);<commit_msg>[drape] temporary fix. i will fix it when will create textures subsystem<commit_after>#pragma once

#include "pointers.hpp"
#include "texture.hpp"
#include "uniform_value.hpp"

#include "../std/vector.hpp"

class GLState
{
public:
  GLState(uint32_t gpuProgramIndex, int16_t depthLayer, const TextureBinding & texture);

  int GetProgramIndex() const;
  const TextureBinding & GetTextureBinding() const;
  TextureBinding & GetTextureBinding();
  const vector<UniformValue> & GetUniformValues() const;
  vector<UniformValue> & GetUniformValues();

  bool operator<(const GLState & other) const
  {
    return m_depthLayer < other.m_depthLayer
        || m_gpuProgramIndex < other.m_gpuProgramIndex
        //|| m_texture < other.m_texture
        || m_uniforms < other.m_uniforms;
  }

private:
  uint32_t m_gpuProgramIndex;
  uint16_t m_depthLayer;
  TextureBinding m_texture;
  vector<UniformValue> m_uniforms;
};

void ApplyState(GLState state, ReferencePoiner<GpuProgram> program);
{'fraction_non_alphanumeric': 0.09805977975878342, 'fraction_numerical': 0.008390141583639224, 'mean_word_length': 4.981191222570533, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 11, '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': '1601038', 'n_tokens_mistral': 620, 'n_tokens_neox': 597, 'n_words': 136}