mirror of
https://github.com/enduro2d/enduro2d.git
synced 2025-12-16 22:16:53 +07:00
remove unsupported mipmap and cubemap filtration options
This commit is contained in:
@@ -426,11 +426,7 @@ namespace e2d
|
|||||||
|
|
||||||
enum class sampler_min_filter : u8 {
|
enum class sampler_min_filter : u8 {
|
||||||
nearest,
|
nearest,
|
||||||
linear,
|
linear
|
||||||
nearest_mipmap_nearest,
|
|
||||||
linear_mipmap_nearest,
|
|
||||||
nearest_mipmap_linear,
|
|
||||||
linear_mipmap_linear
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum class sampler_mag_filter : u8 {
|
enum class sampler_mag_filter : u8 {
|
||||||
@@ -585,7 +581,6 @@ namespace e2d
|
|||||||
sampler_state& wrap(sampler_wrap st) noexcept;
|
sampler_state& wrap(sampler_wrap st) noexcept;
|
||||||
sampler_state& s_wrap(sampler_wrap s) noexcept;
|
sampler_state& s_wrap(sampler_wrap s) noexcept;
|
||||||
sampler_state& t_wrap(sampler_wrap t) noexcept;
|
sampler_state& t_wrap(sampler_wrap t) noexcept;
|
||||||
sampler_state& r_wrap(sampler_wrap t) noexcept;
|
|
||||||
|
|
||||||
sampler_state& filter(sampler_min_filter min, sampler_mag_filter mag) noexcept;
|
sampler_state& filter(sampler_min_filter min, sampler_mag_filter mag) noexcept;
|
||||||
sampler_state& min_filter(sampler_min_filter min) noexcept;
|
sampler_state& min_filter(sampler_min_filter min) noexcept;
|
||||||
@@ -595,7 +590,6 @@ namespace e2d
|
|||||||
|
|
||||||
sampler_wrap s_wrap() const noexcept;
|
sampler_wrap s_wrap() const noexcept;
|
||||||
sampler_wrap t_wrap() const noexcept;
|
sampler_wrap t_wrap() const noexcept;
|
||||||
sampler_wrap r_wrap() const noexcept;
|
|
||||||
|
|
||||||
sampler_min_filter min_filter() const noexcept;
|
sampler_min_filter min_filter() const noexcept;
|
||||||
sampler_mag_filter mag_filter() const noexcept;
|
sampler_mag_filter mag_filter() const noexcept;
|
||||||
@@ -603,8 +597,7 @@ namespace e2d
|
|||||||
texture_ptr texture_;
|
texture_ptr texture_;
|
||||||
sampler_wrap s_wrap_ = sampler_wrap::repeat;
|
sampler_wrap s_wrap_ = sampler_wrap::repeat;
|
||||||
sampler_wrap t_wrap_ = sampler_wrap::repeat;
|
sampler_wrap t_wrap_ = sampler_wrap::repeat;
|
||||||
sampler_wrap r_wrap_ = sampler_wrap::repeat;
|
sampler_min_filter min_filter_ = sampler_min_filter::linear;
|
||||||
sampler_min_filter min_filter_ = sampler_min_filter::nearest_mipmap_linear;
|
|
||||||
sampler_mag_filter mag_filter_ = sampler_mag_filter::linear;
|
sampler_mag_filter mag_filter_ = sampler_mag_filter::linear;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -654,7 +654,6 @@ namespace e2d
|
|||||||
render::sampler_state& render::sampler_state::wrap(sampler_wrap st) noexcept {
|
render::sampler_state& render::sampler_state::wrap(sampler_wrap st) noexcept {
|
||||||
s_wrap(st);
|
s_wrap(st);
|
||||||
t_wrap(st);
|
t_wrap(st);
|
||||||
r_wrap(st);
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -668,11 +667,6 @@ namespace e2d
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
render::sampler_state& render::sampler_state::r_wrap(sampler_wrap r) noexcept {
|
|
||||||
r_wrap_ = r;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
render::sampler_state& render::sampler_state::filter(sampler_min_filter min, sampler_mag_filter mag) noexcept {
|
render::sampler_state& render::sampler_state::filter(sampler_min_filter min, sampler_mag_filter mag) noexcept {
|
||||||
min_filter(min);
|
min_filter(min);
|
||||||
mag_filter(mag);
|
mag_filter(mag);
|
||||||
@@ -701,10 +695,6 @@ namespace e2d
|
|||||||
return t_wrap_;
|
return t_wrap_;
|
||||||
}
|
}
|
||||||
|
|
||||||
render::sampler_wrap render::sampler_state::r_wrap() const noexcept {
|
|
||||||
return r_wrap_;
|
|
||||||
}
|
|
||||||
|
|
||||||
render::sampler_min_filter render::sampler_state::min_filter() const noexcept {
|
render::sampler_min_filter render::sampler_state::min_filter() const noexcept {
|
||||||
return min_filter_;
|
return min_filter_;
|
||||||
}
|
}
|
||||||
@@ -1239,7 +1229,6 @@ namespace e2d
|
|||||||
return l.texture() == r.texture()
|
return l.texture() == r.texture()
|
||||||
&& l.s_wrap() == r.s_wrap()
|
&& l.s_wrap() == r.s_wrap()
|
||||||
&& l.t_wrap() == r.t_wrap()
|
&& l.t_wrap() == r.t_wrap()
|
||||||
&& l.r_wrap() == r.r_wrap()
|
|
||||||
&& l.min_filter() == r.min_filter()
|
&& l.min_filter() == r.min_filter()
|
||||||
&& l.mag_filter() == r.mag_filter();
|
&& l.mag_filter() == r.mag_filter();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -136,10 +136,6 @@ namespace
|
|||||||
texture_id.target(),
|
texture_id.target(),
|
||||||
GL_TEXTURE_WRAP_T,
|
GL_TEXTURE_WRAP_T,
|
||||||
convert_sampler_wrap(sampler.t_wrap())));
|
convert_sampler_wrap(sampler.t_wrap())));
|
||||||
GL_CHECK_CODE(debug, glTexParameteri(
|
|
||||||
texture_id.target(),
|
|
||||||
GL_TEXTURE_WRAP_R,
|
|
||||||
convert_sampler_wrap(sampler.r_wrap())));
|
|
||||||
GL_CHECK_CODE(debug, glTexParameteri(
|
GL_CHECK_CODE(debug, glTexParameteri(
|
||||||
texture_id.target(),
|
texture_id.target(),
|
||||||
GL_TEXTURE_MIN_FILTER,
|
GL_TEXTURE_MIN_FILTER,
|
||||||
@@ -544,16 +540,6 @@ namespace e2d
|
|||||||
convert_image_data_format_to_external_data_type(image.format()),
|
convert_image_data_format_to_external_data_type(image.format()),
|
||||||
image.data().data()));
|
image.data().data()));
|
||||||
}
|
}
|
||||||
#if E2D_RENDER_MODE == E2D_RENDER_MODE_OPENGL
|
|
||||||
GL_CHECK_CODE(state_->dbg(), glTexParameteri(
|
|
||||||
id.target(),
|
|
||||||
GL_TEXTURE_MAX_LEVEL,
|
|
||||||
0));
|
|
||||||
GL_CHECK_CODE(state_->dbg(), glTexParameteri(
|
|
||||||
id.target(),
|
|
||||||
GL_TEXTURE_BASE_LEVEL,
|
|
||||||
0));
|
|
||||||
#endif
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return std::make_shared<texture>(
|
return std::make_shared<texture>(
|
||||||
|
|||||||
@@ -909,10 +909,6 @@ namespace e2d::opengl
|
|||||||
switch ( f ) {
|
switch ( f ) {
|
||||||
DEFINE_CASE(nearest, GL_NEAREST);
|
DEFINE_CASE(nearest, GL_NEAREST);
|
||||||
DEFINE_CASE(linear, GL_LINEAR);
|
DEFINE_CASE(linear, GL_LINEAR);
|
||||||
DEFINE_CASE(nearest_mipmap_nearest, GL_NEAREST_MIPMAP_NEAREST);
|
|
||||||
DEFINE_CASE(linear_mipmap_nearest, GL_LINEAR_MIPMAP_NEAREST);
|
|
||||||
DEFINE_CASE(nearest_mipmap_linear, GL_NEAREST_MIPMAP_LINEAR);
|
|
||||||
DEFINE_CASE(linear_mipmap_linear, GL_LINEAR_MIPMAP_LINEAR);
|
|
||||||
default:
|
default:
|
||||||
E2D_ASSERT_MSG(false, "unexpected sampler min filter");
|
E2D_ASSERT_MSG(false, "unexpected sampler min filter");
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -179,8 +179,7 @@ namespace
|
|||||||
"additionalProperties" : false,
|
"additionalProperties" : false,
|
||||||
"properties" : {
|
"properties" : {
|
||||||
"s" : { "$ref" : "#/definitions/sampler_wrap" },
|
"s" : { "$ref" : "#/definitions/sampler_wrap" },
|
||||||
"t" : { "$ref" : "#/definitions/sampler_wrap" },
|
"t" : { "$ref" : "#/definitions/sampler_wrap" }
|
||||||
"r" : { "$ref" : "#/definitions/sampler_wrap" }
|
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
"$ref" : "#/definitions/sampler_wrap"
|
"$ref" : "#/definitions/sampler_wrap"
|
||||||
@@ -333,11 +332,7 @@ namespace
|
|||||||
"type" : "string",
|
"type" : "string",
|
||||||
"enum" : [
|
"enum" : [
|
||||||
"nearest",
|
"nearest",
|
||||||
"linear",
|
"linear"
|
||||||
"nearest_mipmap_nearest",
|
|
||||||
"linear_mipmap_nearest",
|
|
||||||
"nearest_mipmap_linear",
|
|
||||||
"linear_mipmap_linear"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -471,10 +466,6 @@ namespace
|
|||||||
#define DEFINE_IF(x) if ( str == #x ) { filter = render::sampler_min_filter::x; return true; }
|
#define DEFINE_IF(x) if ( str == #x ) { filter = render::sampler_min_filter::x; return true; }
|
||||||
DEFINE_IF(nearest);
|
DEFINE_IF(nearest);
|
||||||
DEFINE_IF(linear);
|
DEFINE_IF(linear);
|
||||||
DEFINE_IF(nearest_mipmap_nearest);
|
|
||||||
DEFINE_IF(linear_mipmap_nearest);
|
|
||||||
DEFINE_IF(nearest_mipmap_linear);
|
|
||||||
DEFINE_IF(linear_mipmap_linear);
|
|
||||||
#undef DEFINE_IF
|
#undef DEFINE_IF
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -483,10 +474,6 @@ namespace
|
|||||||
#define DEFINE_IF(x,y) if ( str == #x ) { filter = render::sampler_mag_filter::y; return true; }
|
#define DEFINE_IF(x,y) if ( str == #x ) { filter = render::sampler_mag_filter::y; return true; }
|
||||||
DEFINE_IF(nearest, nearest);
|
DEFINE_IF(nearest, nearest);
|
||||||
DEFINE_IF(linear, linear);
|
DEFINE_IF(linear, linear);
|
||||||
DEFINE_IF(nearest_mipmap_nearest, nearest);
|
|
||||||
DEFINE_IF(linear_mipmap_nearest, linear);
|
|
||||||
DEFINE_IF(nearest_mipmap_linear, nearest);
|
|
||||||
DEFINE_IF(linear_mipmap_linear, linear);
|
|
||||||
#undef DEFINE_IF
|
#undef DEFINE_IF
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -555,16 +542,6 @@ namespace
|
|||||||
E2D_ASSERT_MSG(false, "unexpected sampler wrap");
|
E2D_ASSERT_MSG(false, "unexpected sampler wrap");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( wrap_json.HasMember("r") ) {
|
|
||||||
E2D_ASSERT(wrap_json["r"].IsString());
|
|
||||||
auto wrap = content.r_wrap();
|
|
||||||
if ( parse_sampler_wrap(wrap_json["r"].GetString(), wrap) ) {
|
|
||||||
content.r_wrap(wrap);
|
|
||||||
} else {
|
|
||||||
E2D_ASSERT_MSG(false, "unexpected sampler wrap");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else if ( wrap_json.IsString() ) {
|
} else if ( wrap_json.IsString() ) {
|
||||||
auto wrap = content.s_wrap();
|
auto wrap = content.s_wrap();
|
||||||
if ( parse_sampler_wrap(wrap_json.GetString(), wrap) ) {
|
if ( parse_sampler_wrap(wrap_json.GetString(), wrap) ) {
|
||||||
|
|||||||
@@ -55,11 +55,10 @@
|
|||||||
"texture" : "image.png",
|
"texture" : "image.png",
|
||||||
"wrap" : {
|
"wrap" : {
|
||||||
"s" : "clamp",
|
"s" : "clamp",
|
||||||
"t" : "repeat",
|
"t" : "repeat"
|
||||||
"r" : "mirror"
|
|
||||||
},
|
},
|
||||||
"filter" : {
|
"filter" : {
|
||||||
"min" : "linear_mipmap_linear",
|
"min" : "linear",
|
||||||
"mag" : "linear"
|
"mag" : "linear"
|
||||||
}
|
}
|
||||||
}],
|
}],
|
||||||
|
|||||||
@@ -33,8 +33,7 @@ TEST_CASE("render"){
|
|||||||
REQUIRE_FALSE(ss.texture());
|
REQUIRE_FALSE(ss.texture());
|
||||||
REQUIRE(ss.s_wrap() == render::sampler_wrap::repeat);
|
REQUIRE(ss.s_wrap() == render::sampler_wrap::repeat);
|
||||||
REQUIRE(ss.t_wrap() == render::sampler_wrap::repeat);
|
REQUIRE(ss.t_wrap() == render::sampler_wrap::repeat);
|
||||||
REQUIRE(ss.r_wrap() == render::sampler_wrap::repeat);
|
REQUIRE(ss.min_filter() == render::sampler_min_filter::linear);
|
||||||
REQUIRE(ss.min_filter() == render::sampler_min_filter::nearest_mipmap_linear);
|
|
||||||
REQUIRE(ss.mag_filter() == render::sampler_mag_filter::linear);
|
REQUIRE(ss.mag_filter() == render::sampler_mag_filter::linear);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@@ -43,7 +42,6 @@ TEST_CASE("render"){
|
|||||||
.filter(render::sampler_min_filter::linear, render::sampler_mag_filter::nearest);
|
.filter(render::sampler_min_filter::linear, render::sampler_mag_filter::nearest);
|
||||||
REQUIRE(ss.s_wrap() == render::sampler_wrap::clamp);
|
REQUIRE(ss.s_wrap() == render::sampler_wrap::clamp);
|
||||||
REQUIRE(ss.t_wrap() == render::sampler_wrap::clamp);
|
REQUIRE(ss.t_wrap() == render::sampler_wrap::clamp);
|
||||||
REQUIRE(ss.r_wrap() == render::sampler_wrap::clamp);
|
|
||||||
REQUIRE(ss.min_filter() == render::sampler_min_filter::linear);
|
REQUIRE(ss.min_filter() == render::sampler_min_filter::linear);
|
||||||
REQUIRE(ss.mag_filter() == render::sampler_mag_filter::nearest);
|
REQUIRE(ss.mag_filter() == render::sampler_mag_filter::nearest);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -264,8 +264,7 @@ TEST_CASE("library"){
|
|||||||
REQUIRE(sampler);
|
REQUIRE(sampler);
|
||||||
REQUIRE(sampler->s_wrap() == render::sampler_wrap::clamp);
|
REQUIRE(sampler->s_wrap() == render::sampler_wrap::clamp);
|
||||||
REQUIRE(sampler->t_wrap() == render::sampler_wrap::repeat);
|
REQUIRE(sampler->t_wrap() == render::sampler_wrap::repeat);
|
||||||
REQUIRE(sampler->r_wrap() == render::sampler_wrap::mirror);
|
REQUIRE(sampler->min_filter() == render::sampler_min_filter::linear);
|
||||||
REQUIRE(sampler->min_filter() == render::sampler_min_filter::linear_mipmap_linear);
|
|
||||||
REQUIRE(sampler->mag_filter() == render::sampler_mag_filter::linear);
|
REQUIRE(sampler->mag_filter() == render::sampler_mag_filter::linear);
|
||||||
REQUIRE(texture_res->content() == sampler->texture());
|
REQUIRE(texture_res->content() == sampler->texture());
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user