Merge pull request #180 from Wellinator/feature/texture_wraping
Adds support for texture region repeat
This commit is contained in:
@@ -62,7 +62,8 @@ class Texture {
|
||||
|
||||
/** Set texture wrapping */
|
||||
void setWrapSettings(const TextureWrap t_horizontal,
|
||||
const TextureWrap t_vertical);
|
||||
const TextureWrap t_vertical, int minu = 0, int minv = 0,
|
||||
int maxu = 0, int maxv = 0);
|
||||
|
||||
// ----
|
||||
// Other
|
||||
@@ -96,9 +97,10 @@ class Texture {
|
||||
void print(const std::string& name) const { print(name.c_str()); }
|
||||
std::string getPrint(const char* name = nullptr) const;
|
||||
|
||||
void setDefaultWrapSettings();
|
||||
|
||||
private:
|
||||
void setPsm();
|
||||
void setDefaultWrapSettings();
|
||||
|
||||
texwrap_t wrap;
|
||||
};
|
||||
|
||||
@@ -29,6 +29,12 @@ class RendererCoreTexture {
|
||||
|
||||
RendererCoreTextureBuffers useTexture(const Texture* t_tex);
|
||||
|
||||
/**
|
||||
* Called by user after changing texture wrap settings
|
||||
* Updates texture packet without reallocate it
|
||||
*/
|
||||
RendererCoreTextureBuffers updateTextureInfo(const Texture* t_tex);
|
||||
|
||||
/** Called by renderer during initialization */
|
||||
void init(RendererCoreGS* gs, Path3* path3);
|
||||
|
||||
|
||||
@@ -178,9 +178,14 @@ void Texture::setDefaultWrapSettings() {
|
||||
}
|
||||
|
||||
void Texture::setWrapSettings(const TextureWrap t_horizontal,
|
||||
const TextureWrap t_vertical) {
|
||||
const TextureWrap t_vertical, int minu, int minv,
|
||||
int maxu, int maxv) {
|
||||
wrap.horizontal = t_horizontal;
|
||||
wrap.vertical = t_vertical;
|
||||
wrap.minu = minu;
|
||||
wrap.minv = minv;
|
||||
wrap.maxu = maxu;
|
||||
wrap.maxv = maxv;
|
||||
}
|
||||
|
||||
void Texture::addLink(const u32& t_id) {
|
||||
|
||||
@@ -57,6 +57,17 @@ RendererCoreTextureBuffers RendererCoreTexture::useTexture(
|
||||
return newTexBuffer;
|
||||
}
|
||||
|
||||
RendererCoreTextureBuffers RendererCoreTexture::updateTextureInfo(
|
||||
const Texture* t_tex) {
|
||||
TYRA_ASSERT(t_tex != nullptr, "Provided nullptr texture!");
|
||||
|
||||
auto allocated = getAllocatedBuffersByTextureId(t_tex->id);
|
||||
TYRA_ASSERT(allocated.id != 0, "Can't update an unallocated texture!");
|
||||
|
||||
path3->sendTexture(t_tex, allocated);
|
||||
return allocated;
|
||||
}
|
||||
|
||||
RendererCoreTextureBuffers RendererCoreTexture::getAllocatedBuffersByTextureId(
|
||||
const u32& t_id) {
|
||||
for (u32 i = 0; i < currentAllocations.size(); i++)
|
||||
|
||||
Reference in New Issue
Block a user