PolyScreenMesh.cpp 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /*
  2. * PolyScreenMesh.cpp
  3. * Poly
  4. *
  5. * Created by Ivan Safrin on 5/6/08.
  6. * Copyright 2008 __MyCompanyName__. All rights reserved.
  7. *
  8. */
  9. #include "PolyScreenMesh.h"
  10. using namespace Polycode;
  11. ScreenMesh::ScreenMesh(String fileName) : ScreenEntity(), texture(NULL) {
  12. mesh = new Mesh(fileName);
  13. }
  14. ScreenMesh::ScreenMesh(int meshType) : ScreenEntity(), texture(NULL) {
  15. mesh = new Mesh(meshType);
  16. }
  17. ScreenMesh::~ScreenMesh() {
  18. }
  19. Mesh *ScreenMesh::getMesh() {
  20. return mesh;
  21. }
  22. Texture *ScreenMesh::getTexture() {
  23. return texture;
  24. }
  25. void ScreenMesh::setTexture(Texture *texture) {
  26. this->texture = texture;
  27. }
  28. void ScreenMesh::loadTexture(String fileName) {
  29. texture = CoreServices::getInstance()->getMaterialManager()->createTextureFromFile(fileName);
  30. }
  31. void ScreenMesh::loadTexture(Image *image) {
  32. texture = CoreServices::getInstance()->getMaterialManager()->createTextureFromImage(image);
  33. }
  34. void ScreenMesh::Render() {
  35. Renderer *renderer = CoreServices::getInstance()->getRenderer();
  36. renderer->setTexture(texture);
  37. if(mesh->useVertexColors) {
  38. renderer->pushDataArrayForMesh(mesh, RenderDataArray::COLOR_DATA_ARRAY);
  39. }
  40. renderer->pushDataArrayForMesh(mesh, RenderDataArray::VERTEX_DATA_ARRAY);
  41. renderer->pushDataArrayForMesh(mesh, RenderDataArray::TEXCOORD_DATA_ARRAY);
  42. renderer->drawArrays(mesh->getMeshType());
  43. }