void Texture::createTextureObject(int context_id) { GLuint& id = _ids[context_id]; glEnable(GL_TEXTURE_2D); glGenTextures(1, &id); glBindTexture(GL_TEXTURE_2D, id); applyParams(); // Get the maximum texture size for this GPU. GLint max_size = 0; glGetIntegerv (GL_MAX_TEXTURE_SIZE, &max_size); if (_width > max_size || _height > max_size) { gluBuild2DMipmaps(GL_TEXTURE_2D, _params.internalFormat, _width, _height, GL_BGRA, GL_UNSIGNED_BYTE, FreeImage_GetBits (_data)); checkGLErrors("Texture::createTextureObject1 - gluBuild2DMipmaps"); } else { glTexImage2D (GL_TEXTURE_2D, 0, _params.internalFormat, _width, _height, 0, GL_BGRA, GL_UNSIGNED_BYTE, FreeImage_GetBits (_data)); glGenerateMipmapEXT (GL_TEXTURE_2D); checkGLErrors("Texture::createTextureObject1 - glTexImage2D"); } unbind(); }
void Texture::blank (const size_t width, const size_t height, int data_type, int context_id) { GLuint &id = _ids[context_id]; glGenTextures (1, &id); glBindTexture (GL_TEXTURE_2D, id); applyParams (); glTexImage2D (GL_TEXTURE_2D, 0, _params.internalFormat, width, height, 0, _params.format, data_type, NULL); glBindTexture (GL_TEXTURE_2D, 0); }
void Splinter::init(const Asteroid &parent, float fi) { _rr = parent.R() /2.; x = parent.X() + parent.R() * cos(fi); y = parent.Y() + parent.R() * sin(fi); _rotateSpeed = parent.rotateSpeed(); float dv = 0.05; vx = parent.VX() + dv * cos(fi); vy = parent.VY() + dv * sin(fi); _color = parent.color(); angle = atan2(vx, vy); nvertices = random2().irandom(12,16); _colorMult = parent.colorMult(); applyParams(); }
vector<int> ListModel::solve(SolverParams params) { Utils::Tracer *tr = nullptr; TraceCallback *cback = nullptr; buildModel(); applyParams(params); if(params.traceobj) { tr = new Utils::Tracer(traceFilenameForListModel(params.outPath, params.solverIx, p.instanceName)); cback = new TraceCallback(*tr); //ls.addCallback(CT_TimeTicked, cback); decoder->setTracer(tr); } ls.solve(); auto sol = ls.getSolution(); if(cback != nullptr) delete cback; if(tr != nullptr) delete tr; return parseScheduleFromSolution(sol); }
// Create a texture object with passed in data. void Texture::createTextureObject (unsigned char *data, math::vec2i size, int context_id) { _width = size.x (); _height = size.y (); GLuint &id = _ids[context_id]; glEnable (GL_TEXTURE_2D); glGenTextures (1, &id); glBindTexture (GL_TEXTURE_2D, id); applyParams (); // Get the maximum texture size for this GPU. GLint max_size = 0; glGetIntegerv (GL_MAX_TEXTURE_SIZE, &max_size); if (_width > max_size || _height > max_size) { gluBuild2DMipmaps (GL_TEXTURE_2D, _params.internalFormat, _width, _height, _params.format, GL_UNSIGNED_BYTE, data); checkGLErrors ("Texture::createTextureObject2 - gluBuild2DMipmaps"); } else { glTexImage2D (GL_TEXTURE_2D, 0, _params.internalFormat, _width, _height, 0, _params.format, GL_UNSIGNED_BYTE, data); glGenerateMipmapEXT (GL_TEXTURE_2D); checkGLErrors("Texture::createTextureObject2 - glTexImage2D"); } unbind (); }
void Asteroid::init() { initParams(); applyParams(); }