disable mip-mapping in fonts
This commit is contained in:
@@ -151,7 +151,9 @@ assetload::postfunc assetload::font(
|
|||||||
if (page == nullptr) {
|
if (page == nullptr) {
|
||||||
textures.emplace_back(nullptr);
|
textures.emplace_back(nullptr);
|
||||||
} else {
|
} else {
|
||||||
textures.emplace_back(Texture::from(page.get()));
|
auto texture = Texture::from(page.get());
|
||||||
|
texture->setMipMapping(false);
|
||||||
|
textures.emplace_back(std::move(texture));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
assets->store(
|
assets->store(
|
||||||
|
|||||||
@@ -59,7 +59,9 @@ std::unique_ptr<ImageData> GLTexture::readData() {
|
|||||||
glBindTexture(GL_TEXTURE_2D, id);
|
glBindTexture(GL_TEXTURE_2D, id);
|
||||||
glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, data.get());
|
glGetTexImage(GL_TEXTURE_2D, 0, GL_RGBA, GL_UNSIGNED_BYTE, data.get());
|
||||||
glBindTexture(GL_TEXTURE_2D, 0);
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
return std::make_unique<ImageData>(ImageFormat::rgba8888, width, height, data.release());
|
return std::make_unique<ImageData>(
|
||||||
|
ImageFormat::rgba8888, width, height, data.release()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void GLTexture::setNearestFilter() {
|
void GLTexture::setNearestFilter() {
|
||||||
@@ -69,6 +71,18 @@ void GLTexture::setNearestFilter() {
|
|||||||
glBindTexture(GL_TEXTURE_2D, 0);
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GLTexture::setMipMapping(bool flag) {
|
||||||
|
bind();
|
||||||
|
if (flag) {
|
||||||
|
glTexParameteri(
|
||||||
|
GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||||
|
}
|
||||||
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
|
}
|
||||||
|
|
||||||
std::unique_ptr<GLTexture> GLTexture::from(const ImageData* image) {
|
std::unique_ptr<GLTexture> GLTexture::from(const ImageData* image) {
|
||||||
uint width = image->getWidth();
|
uint width = image->getWidth();
|
||||||
uint height = image->getHeight();
|
uint height = image->getHeight();
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ public:
|
|||||||
|
|
||||||
virtual void reload(const ImageData& image) override;
|
virtual void reload(const ImageData& image) override;
|
||||||
|
|
||||||
|
virtual void setMipMapping(bool flag) override;
|
||||||
|
|
||||||
virtual std::unique_ptr<ImageData> readData() override;
|
virtual std::unique_ptr<ImageData> readData() override;
|
||||||
virtual uint getId() const override;
|
virtual uint getId() const override;
|
||||||
|
|
||||||
|
|||||||
@@ -34,5 +34,7 @@ public:
|
|||||||
|
|
||||||
virtual uint getId() const = 0;
|
virtual uint getId() const = 0;
|
||||||
|
|
||||||
|
virtual void setMipMapping(bool flag) = 0;
|
||||||
|
|
||||||
static std::unique_ptr<Texture> from(const ImageData* image);
|
static std::unique_ptr<Texture> from(const ImageData* image);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user