TexturesInspector::TexturesInspector(const Vector2& size) { setSize(size); spSlidingActor slide = new SlidingActor; slide->setSize(size); addChild(slide); float offsetY = 0; std::vector<spNativeTexture> textures = NativeTexture::getCreatedTextures(); spTextField text = initActor(new TextField, arg_color = Color::White, arg_pos = Vector2(1, 1), arg_w = itemSize.x * 3.0f, arg_h = 30.0f, arg_vAlign = TextStyle::VALIGN_TOP, arg_hAlign = TextStyle::HALIGN_LEFT, arg_multiline = true, arg_attachTo = slide ); offsetY += text->getTextRect().getBottom() + 5; spActor content = new Actor; content->setX(2); int numX = (int)(size.x / itemSize.x); int n = 0; int mem = 0; for (std::vector<spNativeTexture>::iterator i = textures.begin(); i != textures.end(); ++i) { spNativeTexture t = *i; TextureLine* line = new TextureLine(t); float x = (n % numX) * (itemSize.x + 5.0f); float y = (n / numX) * (itemSize.y + 5.0f); line->setX(x); line->setY(y + offsetY); content->addChild(line); ++n; mem += t->getSizeVRAM(); } char txt[255]; safe_sprintf(txt, "created textures: %d, vram: %d kb", textures.size(), mem / 1024); text->setText(txt); if (numX > n) numX = n; content->setSize( (itemSize.x + 5.0f) * numX, (itemSize.y + 5.0f) * (n + numX - 1.0f) / numX + offsetY); setWidth(content->getWidth()); slide->setWidth(content->getWidth()); //slide->setSize() slide->setContent(content); }
TexturesInspector::TexturesInspector(const Vector2& size) { setSize(size); spSlidingActor slide = new SlidingActor; slide->setSize(size); addChild(slide); float offsetY = 0; std::vector<spNativeTexture> textures = NativeTexture::getCreatedTextures(); spTextField text = initActor(new TextField, arg_color = Color::White, arg_pos = Vector2(1, 1), arg_w = itemSize.x * 3.0f, arg_h = 30.0f, arg_vAlign = TextStyle::VALIGN_TOP, arg_hAlign = TextStyle::HALIGN_LEFT, arg_multiline = true, arg_attachTo = slide ); offsetY += text->getTextRect().getBottom() + 5; spActor content = new Actor; content->setX(2); int numX = (int)(size.x / itemSize.x); int n = 0; int mem = 0; for (std::vector<spNativeTexture>::reverse_iterator i = textures.rbegin(); i != textures.rend(); ++i) { spNativeTexture t = *i; TextureLine* line = new TextureLine(t); float x = (n % numX) * (itemSize.x + 5.0f); float y = (n / numX) * (itemSize.y + 5.0f); line->setX(x); line->setY(y + offsetY); content->addChild(line); ++n; if (t->getHandle()) { TextureFormat fmt = t->getFormat(); int ram = t->getWidth() * t->getHeight(); if (isCompressedFormat(fmt)) { switch (fmt) { case TF_PVRTC_4RGBA: ram /= 2; break; case TF_ETC1: ram /= 2; break; default: break; } } else ram *= getBytesPerPixel(fmt); mem += ram; } } char txt[255]; safe_sprintf(txt, "created textures: %d, vram: %d kb", textures.size(), mem / 1024); text->setText(txt); if (numX > n) numX = n; content->setSize( (itemSize.x + 5.0f) * numX, (itemSize.y + 5.0f) * (n + numX - 1.0f) / numX + offsetY); setWidth(content->getWidth()); slide->setWidth(content->getWidth()); //slide->setSize() slide->setContent(content); }