Add basic mip writing to gpu::Texture

This commit is contained in:
Ryan Huffman 2017-04-10 07:12:49 -07:00 committed by Atlante45
parent 00cbfa0f70
commit 1fec531c68
5 changed files with 13 additions and 4 deletions

View file

@ -626,7 +626,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
proxy.setType(QNetworkProxy::HttpProxy);
proxy.setHostName("127.0.0.1");
proxy.setPort(8888);
QNetworkProxy::setApplicationProxy(proxy);
//QNetworkProxy::setApplicationProxy(proxy);
// make sure the debug draw singleton is initialized on the main thread.
DebugDraw::getInstance().removeMarker("");

View file

@ -270,6 +270,7 @@ public:
virtual void reset() = 0;
virtual PixelsPointer getMipFace(uint16 level, uint8 face = 0) const = 0;
virtual Size getMipFaceSize(uint16 level, uint8 face = 0) const = 0;
virtual void assignMipData(uint16 level, const char* data, const size_t length) = 0;
virtual void assignMipData(uint16 level, const storage::StoragePointer& storage) = 0;
virtual void assignMipFaceData(uint16 level, uint8 face, const storage::StoragePointer& storage) = 0;
virtual bool isMipAvailable(uint16 level, uint8 face = 0) const = 0;
@ -296,6 +297,7 @@ public:
void reset() override;
PixelsPointer getMipFace(uint16 level, uint8 face = 0) const override;
Size getMipFaceSize(uint16 level, uint8 face = 0) const override;
void assignMipData(uint16 level, const char* data, const size_t length) override;
void assignMipData(uint16 level, const storage::StoragePointer& storage) override;
void assignMipFaceData(uint16 level, uint8 face, const storage::StoragePointer& storage) override;
bool isMipAvailable(uint16 level, uint8 face = 0) const override;

View file

@ -141,8 +141,13 @@ namespace ktx {
}
currentDestPtr += destHeader->bytesOfKeyValueData;
for (int i = 0; i < descriptors.size(); ++i) {
*currentDestPtr = descriptors[i]._imageSize;
for (size_t i = 0; i < descriptors.size(); ++i) {
auto ptr = reinterpret_cast<uint32_t*>(currentDestPtr);
*ptr = descriptors[i]._imageSize;
ptr++;
for (size_t k = 0; k < descriptors[i]._imageSize/4; k++) {
*(ptr + k) = 0xFFFF0000;
}
currentDestPtr += descriptors[i]._imageSize + sizeof(uint32_t);
}

View file

@ -393,7 +393,8 @@ void NetworkTexture::loadContent(const QByteArray& content) {
auto numMipsToGet = glm::min(numMips, 6);
auto sizeOfTopMips = 0;
for (int i = 0; i < numMipsToGet; ++i) {
auto& img = desc.images[i];
auto mipLevel = numMips - 1 - i;
auto& img = desc.images[mipLevel];
sizeOfTopMips += img._imageSize;
}
_requestByteRange.fromInclusive = length - sizeOfTopMips;

View file

@ -665,6 +665,7 @@ void Resource::makeRequest() {
}
PROFILE_ASYNC_BEGIN(resource, "Resource:" + getType(), QString::number(_requestID), { { "url", _url.toString() }, { "activeURL", _activeUrl.toString() } });
qDebug() << "Making request to " << _url << " for byte range " << _requestByteRange.fromInclusive << "-" << _requestByteRange.toExclusive;
_request = ResourceManager::createResourceRequest(this, _activeUrl);