X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fopengl%2Fprogram_backend.cpp;h=685f15421d6d726f34f6b73840a5f7ac96eb3e3f;hb=8a8cce8ef4ee28b3572a72958b8b407759f9f826;hp=32c6d6e137c36e4789b47ccb2b381a7823396be2;hpb=4b05add0a40cc7503b9dc7ff3b15844b02f51e16;p=libs%2Fgl.git diff --git a/source/backends/opengl/program_backend.cpp b/source/backends/opengl/program_backend.cpp index 32c6d6e1..685f1542 100644 --- a/source/backends/opengl/program_backend.cpp +++ b/source/backends/opengl/program_backend.cpp @@ -12,7 +12,7 @@ #include #include #include -#include "deviceinfo.h" +#include "device.h" #include "error.h" #include "program.h" #include "program_backend.h" @@ -46,6 +46,17 @@ OpenGLProgram::OpenGLProgram() id = glCreateProgram(); } +OpenGLProgram::OpenGLProgram(OpenGLProgram &&other): + id(other.id), + linked(other.linked), + uniform_calls(move(other.uniform_calls)), + debug_name(move(other.debug_name)) +{ + move(other.stage_ids, other.stage_ids+MAX_STAGES, stage_ids); + other.id = 0; + fill(other.stage_ids, other.stage_ids+MAX_STAGES, 0); +} + OpenGLProgram::~OpenGLProgram() { for(unsigned i=0; i &spec_values, TransientData &transient) { - SL::Compiler compiler(DeviceInfo::get_global().glsl_features); + SL::Compiler compiler(Device::get_current().get_info().glsl_features); compiler.set_source(mod.get_prepared_source(), ""); compiler.specialize(spec_values); compiler.compile(SL::Compiler::PROGRAM);