@@ -0,0 +1,77 @@
/*
spacegameengine is a portable easy to use game engine written in C++.
Copyright (C) 2006-2015 Carl Philipp Reh (carlphilippreh <at> gmail.com)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either context 2
of the License, or (at your option) any later context.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_INFO_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_INFO_CONTEXT_HPP_INCLUDED

#include <sge/opengl/backend/current_fwd.hpp>
#include <sge/opengl/backend/fun_ptr.hpp>
#include <sge/opengl/info/context_fwd.hpp>
#include <sge/opengl/info/extension_set.hpp>
#include <sge/opengl/info/version.hpp>
#include <fcppt/noncopyable.hpp>
#include <fcppt/config/external_begin.hpp>
#include <string>
#include <fcppt/config/external_end.hpp>


namespace sge
{
namespace opengl
{
namespace info
{

class context
{
FCPPT_NONCOPYABLE(
context
);
public:
explicit
context(
sge::opengl::backend::current const &
);

~context();

sge::opengl::info::version
version() const;

sge::opengl::info::extension_set const &
extensions() const;

sge::opengl::backend::fun_ptr
load_function(
std::string const &
) const;
private:
sge::opengl::backend::current const &current_;

sge::opengl::info::version const version_;

sge::opengl::info::extension_set const extensions_;
};

}
}
}

#endif
@@ -4,8 +4,8 @@ Copyright (C) 2006-2015 Carl Philipp Reh (carlphilippreh <at> gmail.com)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
as published by the Free Software Foundation; either context 2
of the License, or (at your option) any later context.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -18,24 +18,21 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_GLX_VISUAL_CONTEXT_FWD_HPP_INCLUDED
#define SGE_OPENGL_GLX_VISUAL_CONTEXT_FWD_HPP_INCLUDED
#ifndef SGE_OPENGL_INFO_CONTEXT_FWD_HPP_INCLUDED
#define SGE_OPENGL_INFO_CONTEXT_FWD_HPP_INCLUDED


namespace sge
{
namespace opengl
{
namespace glx
{
namespace visual
namespace info
{

class context;

}
}
}
}

#endif
@@ -0,0 +1,46 @@
/*
spacegameengine is a portable easy to use game engine written in C++.
Copyright (C) 2006-2015 Carl Philipp Reh (carlphilippreh <at> gmail.com)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either extension_set 2
of the License, or (at your option) any later extension_set.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_INFO_EXTENSION_HPP_INCLUDED
#define SGE_OPENGL_INFO_EXTENSION_HPP_INCLUDED

#include <fcppt/strong_typedef.hpp>
#include <fcppt/config/external_begin.hpp>
#include <string>
#include <fcppt/config/external_end.hpp>


namespace sge
{
namespace opengl
{
namespace info
{

FCPPT_MAKE_STRONG_TYPEDEF(
std::string,
extension
);

}
}
}

#endif
@@ -0,0 +1,45 @@
/*
spacegameengine is a portable easy to use game engine written in C++.
Copyright (C) 2006-2015 Carl Philipp Reh (carlphilippreh <at> gmail.com)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either extension_set 2
of the License, or (at your option) any later extension_set.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_INFO_EXTENSION_SET_HPP_INCLUDED
#define SGE_OPENGL_INFO_EXTENSION_SET_HPP_INCLUDED

#include <sge/opengl/extension_set.hpp>
#include <sge/opengl/info/extension.hpp>


namespace sge
{
namespace opengl
{
namespace info
{

typedef
sge::opengl::extension_set<
sge::opengl::info::extension
>
extension_set;

}
}
}

#endif
@@ -0,0 +1,45 @@
/*
spacegameengine is a portable easy to use game engine written in C++.
Copyright (C) 2006-2015 Carl Philipp Reh (carlphilippreh <at> gmail.com)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either extension_supported 2
of the License, or (at your option) any later extension_supported.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_INFO_EXTENSION_SUPPORTED_HPP_INCLUDED
#define SGE_OPENGL_INFO_EXTENSION_SUPPORTED_HPP_INCLUDED

#include <sge/opengl/info/extension.hpp>
#include <sge/opengl/info/extension_set.hpp>


namespace sge
{
namespace opengl
{
namespace info
{

bool
extension_supported(
sge::opengl::info::extension_set const &,
sge::opengl::info::extension const &
);

}
}
}

#endif
@@ -0,0 +1,44 @@
/*
spacegameengine is a portable easy to use game engine written in C++.
Copyright (C) 2006-2015 Carl Philipp Reh (carlphilippreh <at> gmail.com)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either context 2
of the License, or (at your option) any later context.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_INFO_GET_EXTENSIONS_HPP_INCLUDED
#define SGE_OPENGL_INFO_GET_EXTENSIONS_HPP_INCLUDED

#include <sge/opengl/backend/current_fwd.hpp>
#include <sge/opengl/info/extension_set.hpp>


namespace sge
{
namespace opengl
{
namespace info
{

sge::opengl::info::extension_set
get_extensions(
sge::opengl::backend::current const &
);

}
}
}

#endif
@@ -0,0 +1,44 @@
/*
spacegameengine is a portable easy to use game engine written in C++.
Copyright (C) 2006-2015 Carl Philipp Reh (carlphilippreh <at> gmail.com)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either context 2
of the License, or (at your option) any later context.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_INFO_GET_VERSION_HPP_INCLUDED
#define SGE_OPENGL_INFO_GET_VERSION_HPP_INCLUDED

#include <sge/opengl/backend/current_fwd.hpp>
#include <sge/opengl/info/version.hpp>


namespace sge
{
namespace opengl
{
namespace info
{

sge::opengl::info::version
get_version(
sge::opengl::backend::current const &
);

}
}
}

#endif
@@ -18,23 +18,23 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_GLEW_ERROR_TO_STRING_HPP_INCLUDED
#define SGE_OPENGL_GLEW_ERROR_TO_STRING_HPP_INCLUDED
#ifndef SGE_OPENGL_INFO_MAJOR_VERSION_HPP_INCLUDED
#define SGE_OPENGL_INFO_MAJOR_VERSION_HPP_INCLUDED

#include <sge/opengl/common.hpp>
#include <fcppt/string.hpp>
#include <sge/opengl/info/version_type.hpp>
#include <fcppt/strong_typedef.hpp>


namespace sge
{
namespace opengl
{
namespace glew
namespace info
{

fcppt::string
error_to_string(
GLenum
FCPPT_MAKE_STRONG_TYPEDEF(
sge::opengl::info::version_type,
major_version
);

}
@@ -18,27 +18,27 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_CONTEXT_DEVICE_MAKE_ID_HPP_INCLUDED
#define SGE_OPENGL_CONTEXT_DEVICE_MAKE_ID_HPP_INCLUDED
#ifndef SGE_OPENGL_INFO_MINOR_VERSION_HPP_INCLUDED
#define SGE_OPENGL_INFO_MINOR_VERSION_HPP_INCLUDED

#include <sge/opengl/context/device/id_fwd.hpp>
#include <sge/opengl/info/version_type.hpp>
#include <fcppt/strong_typedef.hpp>


namespace sge
{
namespace opengl
{
namespace context
{
namespace device
namespace info
{

sge::opengl::context::device::id
make_id();
FCPPT_MAKE_STRONG_TYPEDEF(
sge::opengl::info::version_type,
minor_version
);

}
}
}
}

#endif
@@ -0,0 +1,59 @@
/*
spacegameengine is a portable easy to use game engine written in C++.
Copyright (C) 2006-2015 Carl Philipp Reh (carlphilippreh <at> gmail.com)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_INFO_VERSION_HPP_INCLUDED
#define SGE_OPENGL_INFO_VERSION_HPP_INCLUDED

#include <sge/opengl/info/major_version.hpp>
#include <sge/opengl/info/minor_version.hpp>
#include <sge/opengl/info/version_fwd.hpp>


namespace sge
{
namespace opengl
{
namespace info
{

class version
{
public:
version(
sge::opengl::info::major_version,
sge::opengl::info::minor_version
);

sge::opengl::info::major_version
major() const;

sge::opengl::info::minor_version
minor() const;
private:
sge::opengl::info::major_version major_;

sge::opengl::info::minor_version minor_;
};

}
}
}

#endif
@@ -0,0 +1,47 @@
/*
spacegameengine is a portable easy to use game engine written in C++.
Copyright (C) 2006-2015 Carl Philipp Reh (carlphilippreh <at> gmail.com)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_INFO_VERSION_AT_LEAST_HPP_INCLUDED
#define SGE_OPENGL_INFO_VERSION_AT_LEAST_HPP_INCLUDED

#include <sge/opengl/info/major_version.hpp>
#include <sge/opengl/info/minor_version.hpp>
#include <sge/opengl/info/version_fwd.hpp>


namespace sge
{
namespace opengl
{
namespace info
{

bool
version_at_least(
sge::opengl::info::version,
sge::opengl::info::major_version,
sge::opengl::info::minor_version
);

}
}
}

#endif
@@ -18,19 +18,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_GLEW_INITIALIZE_HPP_INCLUDED
#define SGE_OPENGL_GLEW_INITIALIZE_HPP_INCLUDED
#ifndef SGE_OPENGL_INFO_VERSION_FWD_HPP_INCLUDED
#define SGE_OPENGL_INFO_VERSION_FWD_HPP_INCLUDED


namespace sge
{
namespace opengl
{
namespace glew
namespace info
{

void
initialize();
class version;

}
}
@@ -0,0 +1,40 @@
/*
spacegameengine is a portable easy to use game engine written in C++.
Copyright (C) 2006-2015 Carl Philipp Reh (carlphilippreh <at> gmail.com)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_INFO_VERSION_TYPE_HPP_INCLUDED
#define SGE_OPENGL_INFO_VERSION_TYPE_HPP_INCLUDED


namespace sge
{
namespace opengl
{
namespace info
{

typedef
unsigned
version_type;

}
}
}

#endif
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_INIT_MULTI_SAMPLING_HPP_INCLUDED
#define SGE_OPENGL_INIT_MULTI_SAMPLING_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/pixel_format/optional_multi_samples_fwd.hpp>


@@ -32,7 +32,7 @@ namespace opengl

void
init_multi_sampling(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::pixel_format::optional_multi_samples const &
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_INIT_SRGB_HPP_INCLUDED
#define SGE_OPENGL_INIT_SRGB_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/pixel_format/srgb_fwd.hpp>


@@ -32,7 +32,7 @@ namespace opengl

void
init_srgb(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::pixel_format::srgb
);

@@ -23,8 +23,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

#include <sge/opengl/multi_sample_context_fwd.hpp>
#include <sge/opengl/optional_enum.hpp>
#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/info/context_fwd.hpp>
#include <fcppt/noncopyable.hpp>


@@ -35,23 +36,28 @@ namespace opengl

class multi_sample_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
multi_sample_context
);
public:
multi_sample_context();
typedef
sge::opengl::info::context const &
parameter;

explicit
multi_sample_context(
sge::opengl::info::context const &
);

~multi_sample_context()
override;

sge::opengl::optional_enum
flag() const;

typedef void parameter;

static sge::opengl::context::system::id const static_id;
static sge::opengl::context::id const static_id;
private:
sge::opengl::optional_enum const flag_;
};
@@ -21,8 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_OCCLUSION_QUERY_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_OCCLUSION_QUERY_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/info/context_fwd.hpp>
#include <sge/opengl/occlusion_query/context_fwd.hpp>
#include <sge/opengl/occlusion_query/optional_config.hpp>
#include <fcppt/noncopyable.hpp>
@@ -37,25 +38,28 @@ namespace occlusion_query

class context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
context
);
public:
context();
typedef
sge::opengl::info::context const &
parameter;

explicit
context(
sge::opengl::info::context const &
);

~context()
override;

sge::opengl::occlusion_query::optional_config const &
config() const;

typedef
void
parameter;

static sge::opengl::context::system::id const static_id;
static sge::opengl::context::id const static_id;
private:
sge::opengl::occlusion_query::optional_config const config_;
};
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_OCCLUSION_QUERY_CREATE_HPP_INCLUDED
#define SGE_OPENGL_OCCLUSION_QUERY_CREATE_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/occlusion_query/object_unique_ptr.hpp>


@@ -34,7 +34,7 @@ namespace occlusion_query

sge::renderer::occlusion_query::object_unique_ptr
create(
sge::opengl::context::system::object &
sge::opengl::context::object &
);

}
@@ -23,8 +23,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

#include <sge/opengl/basic_target.hpp>
#include <sge/opengl/onscreen_target_fwd.hpp>
#include <sge/opengl/backend/context_fwd.hpp>
#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/backend/current_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/screen_unit.hpp>
#include <sge/renderer/color_buffer/readable_surface_fwd.hpp>
#include <sge/renderer/target/onscreen.hpp>
@@ -56,8 +56,8 @@ class onscreen_target
base;

onscreen_target(
sge::opengl::context::device::object &,
sge::opengl::backend::context &,
sge::opengl::context::object &,
sge::opengl::backend::current &,
awl::window::object &
);

@@ -90,7 +90,7 @@ class onscreen_target
>
color_surface_unique_ptr;

sge::opengl::backend::context &context_;
sge::opengl::backend::current &current_;

color_surface_unique_ptr const main_surface_;
};
@@ -0,0 +1,89 @@
/*
spacegameengine is a portable easy to use game engine written in C++.
Copyright (C) 2006-2015 Carl Philipp Reh (carlphilippreh <at> gmail.com)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation; either extension_set 2
of the License, or (at your option) any later extension_set.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/


#ifndef SGE_OPENGL_PARSE_EXTENSIONS_HPP_INCLUDED
#define SGE_OPENGL_PARSE_EXTENSIONS_HPP_INCLUDED

#include <sge/opengl/extension_set.hpp>
#include <fcppt/algorithm/map.hpp>
#include <fcppt/config/external_begin.hpp>
#include <boost/range/iterator_range_core.hpp>
#include <iterator>
#include <sstream>
#include <string>
#include <utility>
#include <fcppt/config/external_end.hpp>


namespace sge
{
namespace opengl
{

template<
typename Type
>
sge::opengl::extension_set<
Type
>
parse_extensions(
std::string const &_extensions
)
{
std::istringstream stream(
_extensions
);

typedef
std::istream_iterator<
std::string
>
iterator;

return
fcppt::algorithm::map<
sge::opengl::extension_set<
Type
>
>(
boost::make_iterator_range(
iterator(
stream
),
iterator()
),
[](
std::string const &_element
)
{
return
Type(
std::move(
_element
)
);
}
);
}

}
}

#endif
@@ -23,8 +23,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

#include <sge/opengl/pixel_store_context_fwd.hpp>
#include <sge/opengl/unpack_alignment.hpp>
#include <sge/opengl/context/device/base.hpp>
#include <sge/opengl/context/device/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <fcppt/noncopyable.hpp>


@@ -35,7 +35,7 @@ namespace opengl

class pixel_store_context
:
public sge::opengl::context::device::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
pixel_store_context
@@ -56,7 +56,7 @@ class pixel_store_context

typedef void parameter;

static sge::opengl::context::device::id const static_id;
static sge::opengl::context::id const static_id;
private:
sge::opengl::unpack_alignment unpack_alignment_;
};
@@ -21,8 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_RENDER_CONTEXT_CREATE_HPP_INCLUDED
#define SGE_OPENGL_RENDER_CONTEXT_CREATE_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/context/ffp_unique_ptr.hpp>
#include <sge/renderer/target/base_fwd.hpp>

@@ -36,8 +35,7 @@ namespace render_context

sge::renderer::context::ffp_unique_ptr
create(
sge::opengl::context::system::object &,
sge::opengl::context::device::object &,
sge::opengl::context::object &,
sge::renderer::target::base &
);

@@ -22,8 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#define SGE_OPENGL_RENDER_CONTEXT_OBJECT_HPP_INCLUDED

#include <sge/opengl/scoped_target.hpp>
#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/config.hpp>
#include <sge/renderer/primitive_count.hpp>
#include <sge/renderer/primitive_type_fwd.hpp>
@@ -80,8 +79,7 @@ class object
);
public:
object(
sge::opengl::context::system::object &,
sge::opengl::context::device::object &,
sge::opengl::context::object &,
sge::renderer::target::base &
);

@@ -256,9 +254,7 @@ class object
override;
#endif

sge::opengl::context::system::object &system_context_;

sge::opengl::context::device::object &device_context_;
sge::opengl::context::object &context_;

sge::renderer::target::base &target_;

@@ -22,7 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#define SGE_OPENGL_SET_UNPACK_ALIGNMENT_HPP_INCLUDED

#include <sge/opengl/unpack_alignment.hpp>
#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>


namespace sge
@@ -32,7 +32,7 @@ namespace opengl

void
set_unpack_alignment(
sge::opengl::context::device::object &,
sge::opengl::context::object &,
sge::opengl::unpack_alignment
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_SET_VERTEX_BUFFER_HPP_INCLUDED
#define SGE_OPENGL_SET_VERTEX_BUFFER_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/vertex/buffer_fwd.hpp>


@@ -32,7 +32,7 @@ namespace opengl

void
set_vertex_buffer(
sge::opengl::context::device::object &,
sge::opengl::context::object &,
sge::renderer::vertex::buffer const &
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_SET_VERTEX_DECLARATION_HPP_INCLUDED
#define SGE_OPENGL_SET_VERTEX_DECLARATION_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/vertex/const_optional_declaration_ref_fwd.hpp>


@@ -32,7 +32,7 @@ namespace opengl

void
set_vertex_declaration(
sge::opengl::context::device::object &,
sge::opengl::context::object &,
sge::renderer::vertex::const_optional_declaration_ref const &
);

@@ -23,8 +23,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

#include <sge/opengl/optional_enum.hpp>
#include <sge/opengl/srgb_context_fwd.hpp>
#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/info/context_fwd.hpp>
#include <fcppt/noncopyable.hpp>


@@ -35,24 +36,29 @@ namespace opengl

class srgb_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
srgb_context
);
public:
srgb_context();
typedef
sge::opengl::info::context const &
parameter;

explicit
srgb_context(
sge::opengl::info::context const &
);

~srgb_context()
override;

sge::opengl::optional_enum
flag() const;

typedef void parameter;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
sge::opengl::optional_enum const flag_;
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_BLEND_ALPHA_ENABLED_VISITOR_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_BLEND_ALPHA_ENABLED_VISITOR_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/actor.hpp>
#include <sge/renderer/state/core/blend/combined_fwd.hpp>
#include <sge/renderer/state/core/blend/separate_fwd.hpp>
@@ -45,9 +45,10 @@ class alpha_enabled_visitor
alpha_enabled_visitor
);
public:
// TODO: Replace this by match
explicit
alpha_enabled_visitor(
sge::opengl::context::system::object &
sge::opengl::context::object &
);

typedef sge::opengl::state::actor result_type;
@@ -62,7 +63,7 @@ class alpha_enabled_visitor
sge::renderer::state::core::blend::separate const &
) const;
private:
sge::opengl::context::system::object &system_context_;
sge::opengl::context::object &context_;
};

}
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_BLEND_ALPHA_VISITOR_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_BLEND_ALPHA_VISITOR_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/actor_vector.hpp>
#include <sge/renderer/state/core/blend/alpha_enabled_fwd.hpp>
#include <sge/renderer/state/core/blend/alpha_off_fwd.hpp>
@@ -45,9 +45,10 @@ class alpha_visitor
alpha_visitor
);
public:
// TODO: Use match
explicit
alpha_visitor(
sge::opengl::context::system::object &
sge::opengl::context::object &
);

typedef sge::opengl::state::actor_vector result_type;
@@ -62,7 +63,7 @@ class alpha_visitor
sge::renderer::state::core::blend::alpha_enabled const &
) const;
private:
sge::opengl::context::system::object &system_context_;
sge::opengl::context::object &context_;
};

}
@@ -21,8 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_BLEND_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_BLEND_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/info/context_fwd.hpp>
#include <sge/opengl/state/core/blend/context_fwd.hpp>
#include <sge/opengl/state/core/blend/optional_config.hpp>
#include <fcppt/noncopyable.hpp>
@@ -41,23 +42,28 @@ namespace blend

class context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
context
);
public:
context();
typedef
sge::opengl::info::context const &
parameter;

explicit
context(
sge::opengl::info::context const &
);

~context()
override;

sge::opengl::state::core::blend::optional_config const &
config() const;

typedef void parameter;

static sge::opengl::context::system::id const static_id;
static sge::opengl::context::id const static_id;
private:
sge::opengl::state::core::blend::optional_config config_;
};
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_BLEND_CREATE_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_BLEND_CREATE_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/core/blend/object_unique_ptr.hpp>
#include <sge/renderer/state/core/blend/parameters_fwd.hpp>

@@ -39,7 +39,7 @@ namespace blend

sge::renderer::state::core::blend::object_unique_ptr
create(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::blend::parameters const &
);

@@ -21,9 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_BLEND_DEFAULT_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_BLEND_DEFAULT_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/core/blend/object_fwd.hpp>
#include <fcppt/noncopyable.hpp>
#include <fcppt/unique_ptr_impl.hpp>
@@ -42,13 +42,15 @@ namespace blend

class default_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
default_context
);
public:
typedef sge::opengl::context::system::object &parameter;
typedef
sge::opengl::context::object &
parameter;

explicit
default_context(
@@ -62,7 +64,7 @@ class default_context
default_state() const;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
typedef
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_BLEND_MAKE_ACTORS_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_BLEND_MAKE_ACTORS_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/actor_vector.hpp>
#include <sge/renderer/state/core/blend/parameters_fwd.hpp>

@@ -39,7 +39,7 @@ namespace blend

sge::opengl::state::actor_vector
make_actors(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::blend::parameters const &
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_BLEND_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_BLEND_SET_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/core/blend/const_optional_object_ref_fwd.hpp>


@@ -38,7 +38,7 @@ namespace blend

void
set(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::blend::const_optional_object_ref const &
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_CREATE_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_CREATE_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/core/depth_stencil/object_unique_ptr.hpp>
#include <sge/renderer/state/core/depth_stencil/parameters_fwd.hpp>

@@ -39,7 +39,7 @@ namespace depth_stencil

sge::renderer::state::core::depth_stencil::object_unique_ptr
create(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::depth_stencil::parameters const &
);

@@ -21,9 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_DEFAULT_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_DEFAULT_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/core/depth_stencil/object_fwd.hpp>
#include <fcppt/noncopyable.hpp>
#include <fcppt/unique_ptr_impl.hpp>
@@ -42,13 +42,15 @@ namespace depth_stencil

class default_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
default_context
);
public:
typedef sge::opengl::context::system::object &parameter;
typedef
sge::opengl::context::object &
parameter;

explicit
default_context(
@@ -62,7 +64,7 @@ class default_context
default_state() const;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
typedef
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_MAKE_ACTORS_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_MAKE_ACTORS_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/actor_vector.hpp>
#include <sge/renderer/state/core/depth_stencil/parameters_fwd.hpp>

@@ -39,7 +39,7 @@ namespace depth_stencil

sge::opengl::state::actor_vector
make_actors(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::depth_stencil::parameters const &
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_SET_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/core/depth_stencil/const_optional_object_ref_fwd.hpp>


@@ -38,7 +38,7 @@ namespace depth_stencil

void
set(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::depth_stencil::const_optional_object_ref const &
);

@@ -21,8 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_STENCIL_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_STENCIL_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/info/context_fwd.hpp>
#include <sge/opengl/state/core/depth_stencil/stencil/context_fwd.hpp>
#include <sge/opengl/state/core/depth_stencil/stencil/optional_config.hpp>
#include <fcppt/noncopyable.hpp>
@@ -43,23 +44,28 @@ namespace stencil

class context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
context
);
public:
context();
typedef
sge::opengl::info::context const &
parameter;

explicit
context(
sge::opengl::info::context const &
);

~context()
override;

sge::opengl::state::core::depth_stencil::stencil::optional_config const &
config() const;

typedef void parameter;

static sge::opengl::context::system::id const static_id;
static sge::opengl::context::id const static_id;
private:
sge::opengl::state::core::depth_stencil::stencil::optional_config config_;
};
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_STENCIL_ENABLED_VISITOR_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_STENCIL_ENABLED_VISITOR_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/actor_vector.hpp>
#include <sge/renderer/state/core/depth_stencil/stencil/combined_fwd.hpp>
#include <sge/renderer/state/core/depth_stencil/stencil/read_mask.hpp>
@@ -50,8 +50,9 @@ class enabled_visitor
enabled_visitor
);
public:
// TODO: match
enabled_visitor(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::depth_stencil::stencil::ref,
sge::renderer::state::core::depth_stencil::stencil::read_mask,
sge::renderer::state::core::depth_stencil::stencil::write_mask
@@ -69,7 +70,7 @@ class enabled_visitor
sge::renderer::state::core::depth_stencil::stencil::separate const &
) const;
private:
sge::opengl::context::system::object &system_context_;
sge::opengl::context::object &context_;

sge::renderer::state::core::depth_stencil::stencil::ref const ref_;

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_STENCIL_VISITOR_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_DEPTH_STENCIL_STENCIL_VISITOR_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/actor_vector.hpp>
#include <sge/renderer/state/core/depth_stencil/stencil/enabled_fwd.hpp>
#include <sge/renderer/state/core/depth_stencil/stencil/off_fwd.hpp>
@@ -47,9 +47,10 @@ class visitor
visitor
);
public:
// TODO: match
explicit
visitor(
sge::opengl::context::system::object &
sge::opengl::context::object &
);

typedef sge::opengl::state::actor_vector result_type;
@@ -64,7 +65,7 @@ class visitor
sge::renderer::state::core::depth_stencil::stencil::enabled const &
) const;
private:
sge::opengl::context::system::object &system_context_;
sge::opengl::context::object &context_;
};

}
@@ -21,8 +21,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_RASTERIZER_DEFAULT_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_RASTERIZER_DEFAULT_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/state/core/rasterizer/object_fwd.hpp>
#include <fcppt/noncopyable.hpp>
#include <fcppt/unique_ptr_impl.hpp>
@@ -41,7 +41,7 @@ namespace rasterizer

class default_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
default_context
@@ -58,7 +58,7 @@ class default_context
default_state() const;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
typedef
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_RASTERIZER_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_RASTERIZER_SET_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/core/rasterizer/const_optional_object_ref_fwd.hpp>


@@ -38,7 +38,7 @@ namespace rasterizer

void
set(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::rasterizer::const_optional_object_ref const &
);

@@ -21,9 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_SAMPLER_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_SAMPLER_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/device/base.hpp>
#include <sge/opengl/context/device/id.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/core/sampler/object_fwd.hpp>
#include <sge/renderer/state/core/sampler/const_optional_object_ref_map.hpp>
#include <sge/renderer/texture/stage.hpp>
@@ -48,14 +48,14 @@ namespace sampler

class context
:
public sge::opengl::context::device::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
context

);
public:
typedef sge::opengl::context::system::object &parameter;
typedef sge::opengl::context::object &parameter;

explicit
context(
@@ -79,7 +79,7 @@ class context
reset();

static
sge::opengl::context::device::id const
sge::opengl::context::id const
static_id;
private:
typedef
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_SAMPLER_CREATE_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_SAMPLER_CREATE_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/core/sampler/object_unique_ptr.hpp>
#include <sge/renderer/state/core/sampler/parameters_fwd.hpp>

@@ -39,7 +39,7 @@ namespace sampler

sge::renderer::state::core::sampler::object_unique_ptr
create(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::sampler::parameters const &
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_SAMPLER_FILTER_ANISOTROPIC_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_SAMPLER_FILTER_ANISOTROPIC_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/core/sampler/actor_vector.hpp>
#include <sge/renderer/state/core/sampler/filter/anisotropic/parameters_fwd.hpp>

@@ -41,7 +41,7 @@ namespace filter

sge::opengl::state::core::sampler::actor_vector
anisotropic(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::sampler::filter::anisotropic::parameters const &
);

@@ -21,8 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_SAMPLER_FILTER_ANISOTROPY_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_SAMPLER_FILTER_ANISOTROPY_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/info/context_fwd.hpp>
#include <sge/opengl/state/core/sampler/filter/anisotropy_context_fwd.hpp>
#include <sge/opengl/state/core/sampler/filter/optional_anisotropy_config.hpp>
#include <fcppt/noncopyable.hpp>
@@ -43,24 +44,29 @@ namespace filter

class anisotropy_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
anisotropy_context
);
public:
anisotropy_context();
typedef
sge::opengl::info::context const &
parameter;

explicit
anisotropy_context(
sge::opengl::info::context const &
);

~anisotropy_context()
override;

sge::opengl::state::core::sampler::filter::optional_anisotropy_config const &
config() const;

typedef void parameter;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
sge::opengl::state::core::sampler::filter::optional_anisotropy_config const config_;
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_SAMPLER_FILTER_MAKE_ACTORS_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_SAMPLER_FILTER_MAKE_ACTORS_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/core/sampler/actor_vector.hpp>
#include <sge/renderer/state/core/sampler/filter/parameters_fwd.hpp>

@@ -41,7 +41,7 @@ namespace filter

sge::opengl::state::core::sampler::actor_vector
make_actors(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::sampler::filter::parameters const &
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_SAMPLER_FILTER_NORMAL_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_SAMPLER_FILTER_NORMAL_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/core/sampler/actor_vector.hpp>
#include <sge/renderer/state/core/sampler/filter/normal/parameters_fwd.hpp>

@@ -41,7 +41,7 @@ namespace filter

sge::opengl::state::core::sampler::actor_vector
normal(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::sampler::filter::normal::parameters const &
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_SAMPLER_MAKE_ACTORS_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_SAMPLER_MAKE_ACTORS_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/core/sampler/actor_vector.hpp>
#include <sge/renderer/state/core/sampler/parameters_fwd.hpp>

@@ -39,7 +39,7 @@ namespace sampler

sge::opengl::state::core::sampler::actor_vector
make_actors(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::core::sampler::parameters const &
);

@@ -21,8 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_SAMPLER_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_SAMPLER_SET_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/core/sampler/const_optional_object_ref_map.hpp>


@@ -39,8 +38,7 @@ namespace sampler

void
set(
sge::opengl::context::system::object &,
sge::opengl::context::device::object &,
sge::opengl::context::object &,
sge::renderer::state::core::sampler::const_optional_object_ref_map const &
);

@@ -21,8 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_SAMPLER_SET_DEFAULTS_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_SAMPLER_SET_DEFAULTS_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>


namespace sge
@@ -38,8 +37,7 @@ namespace sampler

void
set_defaults(
sge::opengl::context::system::object &,
sge::opengl::context::device::object &
sge::opengl::context::object &
);

}
@@ -21,8 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_CORE_SET_DEFAULTS_HPP_INCLUDED
#define SGE_OPENGL_STATE_CORE_SET_DEFAULTS_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>


namespace sge
@@ -36,8 +35,7 @@ namespace core

void
set_defaults(
sge::opengl::context::system::object &,
sge::opengl::context::device::object &
sge::opengl::context::object &
);

}
@@ -21,8 +21,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_ALPHA_TEST_DEFAULT_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_ALPHA_TEST_DEFAULT_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/state/ffp/alpha_test/object_fwd.hpp>
#include <fcppt/noncopyable.hpp>
#include <fcppt/unique_ptr_impl.hpp>
@@ -41,7 +41,7 @@ namespace alpha_test

class default_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
default_context
@@ -58,7 +58,7 @@ class default_context
default_state() const;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
typedef
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_ALPHA_TEST_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_ALPHA_TEST_SET_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/ffp/alpha_test/const_optional_object_ref_fwd.hpp>


@@ -38,7 +38,7 @@ namespace alpha_test

void
set(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::alpha_test::const_optional_object_ref const &
);

@@ -21,8 +21,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_CLIP_PLANE_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_CLIP_PLANE_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/device/base.hpp>
#include <sge/opengl/context/device/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/renderer/state/index_count.hpp>
#include <fcppt/noncopyable.hpp>

@@ -40,7 +40,7 @@ namespace clip_plane

class context
:
public sge::opengl::context::device::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
context
@@ -62,7 +62,7 @@ class context
);

static
sge::opengl::context::device::id const
sge::opengl::context::id const
static_id;
private:
sge::renderer::state::index_count indices_;
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_CLIP_PLANE_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_CLIP_PLANE_SET_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/ffp/clip_plane/const_object_ref_vector.hpp>


@@ -38,7 +38,7 @@ namespace clip_plane

void
set(
sge::opengl::context::device::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::clip_plane::const_object_ref_vector const &
);

@@ -21,8 +21,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_FOG_DEFAULT_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_FOG_DEFAULT_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/state/ffp/fog/object_fwd.hpp>
#include <fcppt/noncopyable.hpp>
#include <fcppt/unique_ptr_impl.hpp>
@@ -41,7 +41,7 @@ namespace fog

class default_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
default_context
@@ -58,7 +58,7 @@ class default_context
default_state() const;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
typedef
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_FOG_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_FOG_SET_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/ffp/fog/const_optional_object_ref_fwd.hpp>


@@ -38,7 +38,7 @@ namespace fog

void
set(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::fog::const_optional_object_ref const &
);

@@ -21,8 +21,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_LIGHTING_DEFAULT_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_LIGHTING_DEFAULT_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/state/ffp/lighting/object_fwd.hpp>
#include <fcppt/noncopyable.hpp>
#include <fcppt/unique_ptr_impl.hpp>
@@ -41,7 +41,7 @@ namespace lighting

class default_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
default_context
@@ -58,7 +58,7 @@ class default_context
default_state() const;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
typedef
@@ -21,8 +21,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_LIGHTING_LIGHT_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_LIGHTING_LIGHT_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/device/base.hpp>
#include <sge/opengl/context/device/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/renderer/state/index_count.hpp>
#include <fcppt/noncopyable.hpp>

@@ -42,7 +42,7 @@ namespace light

class context
:
public sge::opengl::context::device::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
context
@@ -64,7 +64,7 @@ class context
);

static
sge::opengl::context::device::id const
sge::opengl::context::id const
static_id;
private:
sge::renderer::state::index_count indices_;
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_LIGHTING_LIGHT_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_LIGHTING_LIGHT_SET_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/ffp/lighting/light/const_object_ref_vector.hpp>


@@ -40,7 +40,7 @@ namespace light

void
set(
sge::opengl::context::device::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::lighting::light::const_object_ref_vector const &
);

@@ -21,8 +21,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_LIGHTING_MATERIAL_DEFAULT_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_LIGHTING_MATERIAL_DEFAULT_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/state/ffp/lighting/material/object_fwd.hpp>
#include <fcppt/noncopyable.hpp>
#include <fcppt/unique_ptr_impl.hpp>
@@ -43,7 +43,7 @@ namespace material

class default_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
default_context
@@ -60,7 +60,7 @@ class default_context
default_state() const;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
typedef
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_LIGHTING_MATERIAL_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_LIGHTING_MATERIAL_SET_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/ffp/lighting/material/const_optional_object_ref_fwd.hpp>


@@ -40,7 +40,7 @@ namespace material

void
set(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::lighting::material::const_optional_object_ref const &
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_LIGHTING_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_LIGHTING_SET_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/ffp/lighting/const_optional_object_ref_fwd.hpp>


@@ -38,7 +38,7 @@ namespace lighting

void
set(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::lighting::const_optional_object_ref const &
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_MISC_CREATE_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_MISC_CREATE_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/ffp/misc/object_unique_ptr.hpp>
#include <sge/renderer/state/ffp/misc/parameters_fwd.hpp>

@@ -39,7 +39,7 @@ namespace misc

sge::renderer::state::ffp::misc::object_unique_ptr
create(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::misc::parameters const &
);

@@ -21,9 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_MISC_DEFAULT_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_MISC_DEFAULT_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/ffp/misc/object_fwd.hpp>
#include <fcppt/noncopyable.hpp>
#include <fcppt/unique_ptr_impl.hpp>
@@ -42,13 +42,13 @@ namespace misc

class default_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
default_context
);
public:
typedef sge::opengl::context::system::object &parameter;
typedef sge::opengl::context::object &parameter;

explicit
default_context(
@@ -62,7 +62,7 @@ class default_context
default_state() const;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
typedef
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_MISC_MAKE_ACTORS_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_MISC_MAKE_ACTORS_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/actor_vector.hpp>
#include <sge/renderer/state/ffp/misc/parameters_fwd.hpp>

@@ -39,7 +39,7 @@ namespace misc

sge::opengl::state::actor_vector
make_actors(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::misc::parameters const &
);

@@ -21,8 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_MISC_POINT_SPRITE_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_MISC_POINT_SPRITE_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/info/context_fwd.hpp>
#include <sge/opengl/state/ffp/misc/point_sprite/context_fwd.hpp>
#include <sge/opengl/state/ffp/misc/point_sprite/optional_config.hpp>
#include <fcppt/noncopyable.hpp>
@@ -43,24 +44,29 @@ namespace point_sprite

class context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
context
);
public:
context();
typedef
sge::opengl::info::context const &
parameter;

explicit
context(
sge::opengl::info::context const &
);

~context()
override;

sge::opengl::state::ffp::misc::point_sprite::optional_config const &
config() const;

typedef void parameter;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
sge::opengl::state::ffp::misc::point_sprite::optional_config const config_;
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_MISC_POINT_SPRITE_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_MISC_POINT_SPRITE_SET_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/actor_vector.hpp>
#include <sge/renderer/state/ffp/misc/enable_point_sprites.hpp>

@@ -41,7 +41,7 @@ namespace point_sprite

sge::opengl::state::actor_vector
set(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::misc::enable_point_sprites
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_MISC_POINT_SPRITE_SET_IMPL_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_MISC_POINT_SPRITE_SET_IMPL_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/actor_vector.hpp>
#include <sge/opengl/state/ffp/misc/point_sprite/config_fwd.hpp>
#include <sge/renderer/state/ffp/misc/enable_point_sprites.hpp>
@@ -42,7 +42,7 @@ namespace point_sprite

sge::opengl::state::actor_vector
set_impl(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::opengl::state::ffp::misc::point_sprite::config const &,
sge::renderer::state::ffp::misc::enable_point_sprites
);
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_MISC_POINT_SPRITE_SET_TEXTURE_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_MISC_POINT_SPRITE_SET_TEXTURE_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/ffp/misc/point_sprite/config_fwd.hpp>
#include <sge/renderer/state/ffp/misc/enable_point_sprites.hpp>
#include <sge/renderer/texture/stage.hpp>
@@ -42,7 +42,7 @@ namespace point_sprite

void
set_texture(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::opengl::state::ffp::misc::point_sprite::config const &,
sge::renderer::texture::stage,
sge::renderer::state::ffp::misc::enable_point_sprites
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_MISC_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_MISC_SET_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/ffp/misc/const_optional_object_ref_fwd.hpp>


@@ -38,7 +38,7 @@ namespace misc

void
set(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::misc::const_optional_object_ref const &
);

@@ -21,8 +21,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_SAMPLER_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_SAMPLER_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/device/base.hpp>
#include <sge/opengl/context/device/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/renderer/texture/stage.hpp>
#include <fcppt/noncopyable.hpp>

@@ -40,7 +40,7 @@ namespace sampler

class context
:
public sge::opengl::context::device::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
context
@@ -62,7 +62,7 @@ class context
);

static
sge::opengl::context::device::id const
sge::opengl::context::id const
static_id;
private:
sge::renderer::texture::stage stages_;
@@ -21,8 +21,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_SAMPLER_DEFAULT_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_SAMPLER_DEFAULT_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/state/ffp/sampler/object_fwd.hpp>
#include <fcppt/noncopyable.hpp>
#include <fcppt/unique_ptr_impl.hpp>
@@ -41,7 +41,7 @@ namespace sampler

class default_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
default_context
@@ -58,7 +58,7 @@ class default_context
default_state() const;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
typedef
@@ -21,8 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_SAMPLER_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_SAMPLER_SET_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/ffp/sampler/const_object_ref_vector.hpp>


@@ -39,8 +38,7 @@ namespace sampler

void
set(
sge::opengl::context::system::object &,
sge::opengl::context::device::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::sampler::const_object_ref_vector const &
);

@@ -21,8 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_SAMPLER_SET_DEFAULTS_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_SAMPLER_SET_DEFAULTS_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>


namespace sge
@@ -38,8 +37,7 @@ namespace sampler

void
set_defaults(
sge::opengl::context::system::object &,
sge::opengl::context::device::object &
sge::opengl::context::object &
);

}
@@ -21,8 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_SET_DEFAULTS_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_SET_DEFAULTS_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>


namespace sge
@@ -36,8 +35,7 @@ namespace ffp

void
set_defaults(
sge::opengl::context::system::object &,
sge::opengl::context::device::object &
sge::opengl::context::object &
);

}
@@ -23,8 +23,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

#include <sge/opengl/common.hpp>
#include <sge/opengl/fun_ref.hpp>
#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/info/context_fwd.hpp>
#include <fcppt/noncopyable.hpp>
#include <fcppt/optional_decl.hpp>

@@ -42,20 +43,33 @@ namespace transform

class context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
context
);
public:
context();
typedef
sge::opengl::info::context const &
parameter;

explicit
context(
sge::opengl::info::context const &
);

~context()
override;

typedef
// TODO: Mesa hides this typedef
//PFNGLLOADTRANSPOSEMATRIXFPROC
PFNGLLOADTRANSPOSEMATRIXFARBPROC
gl_load_transpose_matrix_proc;

typedef
sge::opengl::fun_ref<
PFNGLLOADTRANSPOSEMATRIXFPROC
gl_load_transpose_matrix_proc
>
gl_load_transpose_matrix_f;

@@ -71,9 +85,7 @@ class context
bool
have_transpose() const;

typedef void parameter;

static sge::opengl::context::system::id const static_id;
static sge::opengl::context::id const static_id;
private:
optional_load_transpose_matrix_f const load_transpose_matrix_f_;
};
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_TRANSFORM_CREATE_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_TRANSFORM_CREATE_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/ffp/transform/object_unique_ptr.hpp>
#include <sge/renderer/state/ffp/transform/parameters_fwd.hpp>

@@ -39,7 +39,7 @@ namespace transform

sge::renderer::state::ffp::transform::object_unique_ptr
create(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::transform::parameters const &
);

@@ -21,9 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_TRANSFORM_DEFAULT_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_TRANSFORM_DEFAULT_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/ffp/transform/object_fwd.hpp>
#include <fcppt/noncopyable.hpp>
#include <fcppt/unique_ptr_impl.hpp>
@@ -42,13 +42,13 @@ namespace transform

class default_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
default_context
);
public:
typedef sge::opengl::context::system::object &parameter;
typedef sge::opengl::context::object &parameter;

explicit
default_context(
@@ -62,7 +62,7 @@ class default_context
default_state() const;

static
sge::opengl::context::system::id const
sge::opengl::context::id const
static_id;
private:
typedef
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_TRANSFORM_MAKE_ACTORS_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_TRANSFORM_MAKE_ACTORS_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/state/ffp/transform/actor_vector.hpp>
#include <sge/renderer/state/ffp/transform/parameters_fwd.hpp>

@@ -39,7 +39,7 @@ namespace transform

sge::opengl::state::ffp::transform::actor_vector
make_actors(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::transform::parameters const &
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_TRANSFORM_SET_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_TRANSFORM_SET_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/state/ffp/transform/const_optional_object_ref_fwd.hpp>
#include <sge/renderer/state/ffp/transform/mode_fwd.hpp>

@@ -39,7 +39,7 @@ namespace transform

void
set(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::transform::mode,
sge::renderer::state::ffp::transform::const_optional_object_ref const &
);
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_TRANSFORM_SET_DEFAULTS_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_TRANSFORM_SET_DEFAULTS_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>


namespace sge
@@ -37,7 +37,7 @@ namespace transform

void
set_defaults(
sge::opengl::context::system::object &
sge::opengl::context::object &
);

}
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_TRANSFORM_SET_MATRIX_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_TRANSFORM_SET_MATRIX_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/matrix4_fwd.hpp>


@@ -38,7 +38,7 @@ namespace transform

void
set_matrix(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::matrix4 const &
);

@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_FFP_TRANSFORM_SET_MATRIX_AND_MODE_HPP_INCLUDED
#define SGE_OPENGL_STATE_FFP_TRANSFORM_SET_MATRIX_AND_MODE_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/matrix4_fwd.hpp>
#include <sge/renderer/state/ffp/transform/mode_fwd.hpp>

@@ -39,7 +39,7 @@ namespace transform

void
set_matrix_and_mode(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::state::ffp::transform::mode,
sge::renderer::matrix4 const &
);
@@ -21,8 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_STATE_SET_DEFAULTS_HPP_INCLUDED
#define SGE_OPENGL_STATE_SET_DEFAULTS_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>


namespace sge
@@ -34,8 +33,7 @@ namespace state

void
set_defaults(
sge::opengl::context::system::object &,
sge::opengl::context::device::object &
sge::opengl::context::object &
);

}
@@ -22,7 +22,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#define SGE_OPENGL_SYSTEM_HPP_INCLUDED

#include <sge/opengl/backend/system_fwd.hpp>
#include <sge/opengl/context/system/object.hpp>
#include <sge/opengl/platform/system_fwd.hpp>
#include <sge/renderer/system.hpp>
#include <sge/renderer/caps/device.hpp>
@@ -94,8 +93,6 @@ class system
) const
override;

sge::opengl::context::system::object system_context_;

typedef
fcppt::unique_ptr<
sge::opengl::platform::system
@@ -22,8 +22,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#define SGE_OPENGL_TARGET_CONTEXT_HPP_INCLUDED

#include <sge/opengl/optional_target_base_ref.hpp>
#include <sge/opengl/context/device/base.hpp>
#include <sge/opengl/context/device/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <fcppt/noncopyable.hpp>


@@ -34,7 +34,7 @@ namespace opengl

class target_context
:
public sge::opengl::context::device::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
target_context
@@ -55,7 +55,7 @@ class target_context

typedef void parameter;

static sge::opengl::context::device::id const static_id;
static sge::opengl::context::id const static_id;
private:
sge::opengl::optional_target_base_ref last_target_;
};
@@ -21,8 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_TEXTURE_ACTIVATE_HPP_INCLUDED
#define SGE_OPENGL_TEXTURE_ACTIVATE_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/renderer/texture/const_optional_base_ref_fwd.hpp>
#include <sge/renderer/texture/stage.hpp>

@@ -36,8 +35,7 @@ namespace texture

void
activate(
sge::opengl::context::system::object &,
sge::opengl::context::device::object &,
sge::opengl::context::object &,
sge::renderer::texture::const_optional_base_ref const &,
sge::renderer::texture::stage
);
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_TEXTURE_ACTIVE_LEVEL_HPP_INCLUDED
#define SGE_OPENGL_TEXTURE_ACTIVE_LEVEL_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/texture/active_level_fwd.hpp>
#include <sge/renderer/texture/stage.hpp>
#include <fcppt/noncopyable.hpp>
@@ -41,7 +41,7 @@ class active_level
);
public:
active_level(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::texture::stage
);

@@ -21,8 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_TEXTURE_BASIC_HPP_INCLUDED
#define SGE_OPENGL_TEXTURE_BASIC_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/texture/base.hpp>
#include <sge/opengl/texture/basic_fwd.hpp>
#include <sge/opengl/texture/basic_parameters_fwd.hpp>
@@ -85,19 +84,14 @@ class basic
mipmap() const
override;

sge::opengl::context::system::object &
system_context() const;

sge::opengl::context::device::object &
device_context() const;
sge::opengl::context::object &
context() const;
private:
void
generate_mipmaps()
override;

sge::opengl::context::system::object &system_context_;

sge::opengl::context::device::object &device_context_;
sge::opengl::context::object &context_;

sge::renderer::resource_flags_field const resource_flags_;

@@ -56,8 +56,7 @@ sge::opengl::texture::basic_box<
this
]{
sge::opengl::texture::scoped_work_binding const binding(
_basic_parameters.system_context(),
_basic_parameters.device_context(),
_basic_parameters.context(),
this->type(),
this->id()
);
@@ -24,8 +24,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include <sge/opengl/color_format.hpp>
#include <sge/opengl/color_format_type.hpp>
#include <sge/opengl/internal_color_format.hpp>
#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/texture/basic_buffer_parameters_fwd.hpp>
#include <sge/opengl/texture/binding_fwd.hpp>
#include <sge/opengl/texture/buffer_type.hpp>
@@ -52,8 +51,7 @@ class basic_buffer_parameters
public:
basic_buffer_parameters(
sge::opengl::texture::binding const &,
sge::opengl::context::system::object &,
sge::opengl::context::device::object &,
sge::opengl::context::object &,
sge::renderer::texture::mipmap::level,
sge::opengl::texture::type,
sge::opengl::texture::buffer_type,
@@ -68,11 +66,8 @@ class basic_buffer_parameters
sge::opengl::texture::binding const &
binding() const;

sge::opengl::context::system::object &
system_context() const;

sge::opengl::context::device::object &
device_context() const;
sge::opengl::context::object &
context() const;

sge::renderer::texture::mipmap::level
level() const;
@@ -103,9 +98,7 @@ class basic_buffer_parameters
private:
sge::opengl::texture::binding const &binding_;

sge::opengl::context::system::object &system_context_;

sge::opengl::context::device::object &device_context_;
sge::opengl::context::object &context_;

sge::renderer::texture::mipmap::level const level_;

@@ -21,8 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_TEXTURE_BASIC_IMPL_HPP_INCLUDED
#define SGE_OPENGL_TEXTURE_BASIC_IMPL_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/texture/base.hpp>
#include <sge/opengl/texture/basic.hpp>
#include <sge/opengl/texture/basic_parameters.hpp>
@@ -49,11 +48,8 @@ sge::opengl::texture::basic<
sge::opengl::texture::base(
_type
),
system_context_(
_basic_parameters.system_context()
),
device_context_(
_basic_parameters.device_context()
context_(
_basic_parameters.context()
),
resource_flags_(
_parameters.resource_flags()
@@ -115,25 +111,13 @@ sge::opengl::texture::basic<
template<
typename Types
>
sge::opengl::context::system::object &
sge::opengl::texture::basic<
Types
>::system_context() const
{
return
system_context_;
}

template<
typename Types
>
sge::opengl::context::device::object &
sge::opengl::context::object &
sge::opengl::texture::basic<
Types
>::device_context() const
>::context() const
{
return
device_context_;
context_;
}

template<
@@ -145,15 +129,14 @@ sge::opengl::texture::basic<
>::generate_mipmaps()
{
sge::opengl::texture::scoped_work_binding const binding(
system_context_,
device_context_,
context_,
this->type(),
this->id()
);

sge::opengl::texture::mipmap::generate(
binding,
system_context_,
context_,
this->type()
);
}
@@ -27,8 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include <sge/opengl/color_format.hpp>
#include <sge/opengl/color_format_type.hpp>
#include <sge/opengl/internal_color_format.hpp>
#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/texture/basic_buffer.hpp>
#include <sge/opengl/texture/basic_buffer_parameters_fwd.hpp>
#include <sge/opengl/texture/basic_fwd.hpp>
@@ -160,9 +159,7 @@ class basic_lockable_buffer
dim
lock_dim() const;

sge::opengl::context::system::object &system_context_;

sge::opengl::context::device::object &device_context_;
sge::opengl::context::object &context_;

sge::opengl::texture::type const type_;

@@ -79,11 +79,8 @@ sge::opengl::texture::basic_lockable_buffer<
_format,
_parameters
),
system_context_(
_parameters.system_context()
),
device_context_(
_parameters.device_context()
context_(
_parameters.context()
),
type_(
_parameters.type()
@@ -225,22 +222,21 @@ sge::opengl::texture::basic_lockable_buffer<
cur_lock->unlock();

sge::opengl::texture::scoped_work_binding const binding(
system_context_,
device_context_,
context_,
type_,
this->id()
);

sge::opengl::set_unpack_alignment(
device_context_,
context_,
sge::opengl::stride_to_unpack_alignment(
stride_
)
);

Types::dim_types::sub_function()(
binding,
system_context_,
context_,
this->buffer_type(),
color_format_,
color_format_type_,
@@ -300,7 +296,7 @@ sge::opengl::texture::basic_lockable_buffer<
fcppt::optional_assign(
lock_,
sge::opengl::texture::create_lock(
system_context_,
context_,
_method,
fcppt::math::dim::contents(
this->size()
@@ -321,8 +317,7 @@ sge::opengl::texture::basic_lockable_buffer<
)
{
sge::opengl::texture::scoped_work_binding const binding(
system_context_,
device_context_,
context_,
type_,
this->id()
);
@@ -21,8 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_TEXTURE_BASIC_PARAMETERS_HPP_INCLUDED
#define SGE_OPENGL_TEXTURE_BASIC_PARAMETERS_HPP_INCLUDED

#include <sge/opengl/context/device/object_fwd.hpp>
#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/texture/basic_parameters_fwd.hpp>
#include <fcppt/nonassignable.hpp>

@@ -40,20 +39,15 @@ class basic_parameters
basic_parameters
);
public:
explicit
basic_parameters(
sge::opengl::context::system::object &,
sge::opengl::context::device::object &
sge::opengl::context::object &
);

sge::opengl::context::system::object &
system_context() const;

sge::opengl::context::device::object &
device_context() const;
sge::opengl::context::object &
context() const;
private:
sge::opengl::context::system::object &system_context_;

sge::opengl::context::device::object &device_context_;
sge::opengl::context::object &context_;
};

}
@@ -21,8 +21,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_TEXTURE_BIND_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_TEXTURE_BIND_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/device/base.hpp>
#include <sge/opengl/context/device/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/texture/base_fwd.hpp>
#include <sge/opengl/texture/bind_context_fwd.hpp>
#include <sge/opengl/texture/const_optional_base_ref.hpp>
@@ -40,7 +40,7 @@ namespace texture

class bind_context
:
public sge::opengl::context::device::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
bind_context
@@ -65,7 +65,7 @@ class bind_context
typedef void parameter;

static
sge::opengl::context::device::id const
sge::opengl::context::id const
static_id;
private:
typedef fcppt::container::index_map<
@@ -21,7 +21,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_TEXTURE_CREATE_LOCK_HPP_INCLUDED
#define SGE_OPENGL_TEXTURE_CREATE_LOCK_HPP_INCLUDED

#include <sge/opengl/context/system/object_fwd.hpp>
#include <sge/opengl/context/object_fwd.hpp>
#include <sge/opengl/texture/lock_base.hpp>
#include <sge/opengl/texture/lock_base_unique_ptr.hpp>
#include <sge/renderer/resource_flags_field_fwd.hpp>
@@ -37,7 +37,7 @@ namespace texture

sge::opengl::texture::lock_base_unique_ptr
create_lock(
sge::opengl::context::system::object &,
sge::opengl::context::object &,
sge::renderer::lock_flags::method,
sge::opengl::texture::lock_base::size_type read_size,
sge::opengl::texture::lock_base::size_type write_size,
@@ -21,8 +21,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#ifndef SGE_OPENGL_TEXTURE_CUBE_CONTEXT_HPP_INCLUDED
#define SGE_OPENGL_TEXTURE_CUBE_CONTEXT_HPP_INCLUDED

#include <sge/opengl/context/system/base.hpp>
#include <sge/opengl/context/system/id.hpp>
#include <sge/opengl/context/base.hpp>
#include <sge/opengl/context/id.hpp>
#include <sge/opengl/info/context_fwd.hpp>
#include <sge/opengl/texture/cube_context_fwd.hpp>
#include <sge/opengl/texture/optional_cube_config.hpp>
#include <fcppt/noncopyable.hpp>
@@ -37,23 +38,28 @@ namespace texture

class cube_context
:
public sge::opengl::context::system::base
public sge::opengl::context::base
{
FCPPT_NONCOPYABLE(
cube_context
);
public:
cube_context();
typedef
sge::opengl::info::context const &
parameter;

explicit
cube_context(
sge::opengl::info::context const &
);

~cube_context()
override;

sge::opengl::texture::optional_cube_config const &
config() const;

typedef void parameter;

static sge::opengl::context::system::id const static_id;
static sge::opengl::context::id const static_id;
private:
sge::opengl::texture::optional_cube_config const config_;
};