OpenGLModule::OpenGLModule(InviwoApplication* app)
    : InviwoModule(app, "OpenGL")
    , sharedResources_{util::make_unique<SharedOpenGLResources>()}
    , shaderManager_{util::make_unique<ShaderManager>()} {
    
    SharedOpenGLResources::init(sharedResources_.get());
    ShaderManager::init(shaderManager_.get());

    opengl::addShaderResources(shaderManager_.get(), {getPath(ModulePath::GLSL)});

    registerDrawer(util::make_unique<MeshDrawerGL>());
    registerRepresentationConverter(util::make_unique<LayerRAM2GLConverter>());
    registerRepresentationConverter(util::make_unique<LayerGL2RAMConverter>());

    registerRepresentationConverter(util::make_unique<VolumeRAM2GLConverter>());
    registerRepresentationConverter(util::make_unique<VolumeGL2RAMConverter>());

    registerRepresentationConverter(util::make_unique<BufferRAM2GLConverter>());
    registerRepresentationConverter(util::make_unique<BufferGL2RAMConverter>());
    registerRepresentationConverter(util::make_unique<ElementBufferRAM2GLConverter>());
    registerRepresentationConverter(util::make_unique<ElementBufferGL2RAMConverter>());

    registerProcessor<CanvasProcessorGL>();

    auto settings = util::make_unique<OpenGLSettings>();
    auto openGLCap = util::make_unique<OpenGLCapabilities>(settings.get());
    shaderManager_.get()->setOpenGLSettings(settings.get());

    registerSettings(std::move(settings));
    registerCapabilities(std::move(openGLCap));
}
Exemple #2
0
OpenGLModule::OpenGLModule(InviwoApplication* app) : InviwoModule(app, "OpenGL") {
    ShaderManager::init();

#ifdef OPENGL_INCLUDE_SHADER_RESOURCES
    OPENGL_addGeneratedShaderResources();
#else
    ShaderManager::getPtr()->addShaderSearchPath(InviwoApplication::PATH_MODULES, "opengl/glsl");
#endif

    registerDrawer(util::make_unique<MeshDrawerGL>());
    registerRepresentationConverter(util::make_unique<LayerRAM2GLConverter>());
    registerRepresentationConverter(util::make_unique<LayerGL2RAMConverter>());

    registerRepresentationConverter(util::make_unique<VolumeRAM2GLConverter>());
    registerRepresentationConverter(util::make_unique<VolumeGL2RAMConverter>());
    
    registerRepresentationConverter(util::make_unique<BufferRAM2GLConverter>());
    registerRepresentationConverter(util::make_unique<BufferGL2RAMConverter>());
    registerRepresentationConverter(util::make_unique<ElementBufferRAM2GLConverter>());
    registerRepresentationConverter(util::make_unique<ElementBufferGL2RAMConverter>());

    registerProcessor<CanvasProcessorGL>();

    auto settings = util::make_unique<OpenGLSettings>();
    auto openGLCap = util::make_unique<OpenGLCapabilities>(settings.get());
    ShaderManager::getPtr()->setUniformWarningLevel(settings.get());

    registerSettings(std::move(settings));
    registerCapabilities(std::move(openGLCap));
}
Exemple #3
0
void registerQlFunctions(const XLOPER &xDll) {

        registerAbcd(xDll);
        registerAccountingengines(xDll);
        registerAlphaform(xDll);
        registerAssetswap(xDll);
        registerBasketlossmodels(xDll);
        registerBonds(xDll);
        registerBrowniangenerators(xDll);
        registerBtp(xDll);
        registerCalendar(xDll);
        registerCapfloor(xDll);
        registerCapletvolstructure(xDll);
        registerCmsmarket(xDll);
        registerCmsmarketcalibration(xDll);
        registerCorrelation(xDll);
        registerCouponvectors(xDll);
        registerCredit(xDll);
        registerCtsmmcapletcalibration(xDll);
        registerCurvestate(xDll);
        registerDate(xDll);
        registerDaycounter(xDll);
        registerDefaultbasket(xDll);
        registerDefaulttermstructures(xDll);
        registerDriftcalculators(xDll);
        registerEvolutiondescription(xDll);
        registerExercise(xDll);
        registerForwardrateagreement(xDll);
        registerHandles(xDll);
        registerIndex(xDll);
        registerInstruments(xDll);
        registerInterpolation(xDll);
        registerLatentmodels(xDll);
        registerLeg(xDll);
        registerMarketmodelevolvers(xDll);
        registerMarketmodels(xDll);
        registerMathf(xDll);
        registerOptimization(xDll);
        registerOptions(xDll);
        registerOvernightindexedswap(xDll);
        registerPayoffs(xDll);
        registerPiecewiseyieldcurve(xDll);
        registerPrices(xDll);
        registerPricingengines(xDll);
        registerProcesses(xDll);
        registerProducts(xDll);
        registerQuotes(xDll);
        registerRandomsequencegenerator(xDll);
        registerRangeaccrual(xDll);
        registerRatehelpers(xDll);
        registerSchedule(xDll);
        registerSequencestatistics(xDll);
        registerSettings(xDll);
        registerShortratemodels(xDll);
        registerSmilesection(xDll);
        registerStatistics(xDll);
        registerSwap(xDll);
        registerSwaption(xDll);
        registerSwaptionvolstructure(xDll);
        registerTermstructures(xDll);
        registerTimeseries(xDll);
        registerUtilities(xDll);
        registerVanillaswap(xDll);
        registerVolatilities(xDll);
        registerVolatility(xDll);

}
Exemple #4
0
InviwoCore::InviwoCore() : InviwoModule() {
    setIdentifier("Core");
    // Register Converters
    registerRepresentationConverter(new VolumeDisk2RAMConverter());
    registerRepresentationConverter(new LayerDisk2RAMConverter());
    registerRepresentationConverter(new MeshDisk2RAMConverter());
    // Register MetaData
    registerMetaData(new BoolMetaData());
    registerMetaData(new IntMetaData());
    registerMetaData(new FloatMetaData());
    registerMetaData(new DoubleMetaData());
    registerMetaData(new StringMetaData());
    registerMetaData(new FloatVec2MetaData());
    registerMetaData(new FloatVec3MetaData());
    registerMetaData(new FloatVec4MetaData());
    registerMetaData(new DoubleVec2MetaData());
    registerMetaData(new DoubleVec3MetaData());
    registerMetaData(new DoubleVec4MetaData());
    registerMetaData(new IntVec2MetaData());
    registerMetaData(new IntVec3MetaData());
    registerMetaData(new IntVec4MetaData());
    registerMetaData(new UIntVec2MetaData());
    registerMetaData(new UIntVec3MetaData());
    registerMetaData(new UIntVec4MetaData());
    registerMetaData(new FloatMat2MetaData());
    registerMetaData(new FloatMat3MetaData());
    registerMetaData(new FloatMat4MetaData());
    registerMetaData(new DoubleMat2MetaData());
    registerMetaData(new DoubleMat4MetaData());
    registerMetaData(new DoubleMat3MetaData());
    registerMetaData(new VectorMetaData<2,float>());
    registerMetaData(new VectorMetaData<3,float>());
    registerMetaData(new VectorMetaData<4,float>());
    registerMetaData(new VectorMetaData<2,double>());
    registerMetaData(new VectorMetaData<3,double>());
    registerMetaData(new VectorMetaData<4,double>());
    registerMetaData(new VectorMetaData<2,int>());
    registerMetaData(new VectorMetaData<3,int>());
    registerMetaData(new VectorMetaData<4,int>());
    registerMetaData(new VectorMetaData<2,unsigned int>());
    registerMetaData(new VectorMetaData<3,unsigned int>());
    registerMetaData(new VectorMetaData<4,unsigned int>());
    registerMetaData(new MatrixMetaData<2,float>());
    registerMetaData(new MatrixMetaData<3,float>());
    registerMetaData(new MatrixMetaData<4,float>());
    registerMetaData(new MatrixMetaData<2,double>());
    registerMetaData(new MatrixMetaData<3,double>());
    registerMetaData(new MatrixMetaData<4,double>());
    registerMetaData(new PositionMetaData());
    registerMetaData(new ProcessorMetaData());
    registerMetaData(new ProcessorWidgetMetaData());
    registerMetaData(new PropertyEditorWidgetMetaData());
    // Register Capabilities
    registerCapabilities(new SystemCapabilities());
    // Register Data readers
    registerDataReader(new DatVolumeReader());
    registerDataReader(new IvfVolumeReader());
    registerDataReader(new RawVolumeReader());
    // Register Data writers
    registerDataWriter(new DatVolumeWriter());
    registerDataWriter(new IvfVolumeWriter());
    // Register Settings
    registerSettings(new SystemSettings());
    registerSettings(new LinkSettings());
    // Register Ports
    registerPort(MeshInport);
    registerPort(MeshMultiInport);
    registerPort(MeshOutport);
    registerPort(ImageInport);
    registerPort(ImageOutport);
    registerPort(VolumeInport);
    registerPort(VolumeOutport);
    // Register PortInspectors
    registerPortInspector("org.inviwo.ImageOutport", InviwoApplication::getPtr()->getPath(InviwoApplication::PATH_PORTINSPECTORS, "/imageportinspector.inv"));
    registerPortInspector("org.inviwo.VolumeOutport", InviwoApplication::getPtr()->getPath(InviwoApplication::PATH_PORTINSPECTORS, "/volumeportinspector.inv"));
    registerPortInspector("org.inviwo.GeometryOutport", InviwoApplication::getPtr()->getPath(InviwoApplication::PATH_PORTINSPECTORS, "/geometryportinspector.inv"));
    
    //registerProperty(EventProperty); TODO fix "default" contructor with 2 args...
    registerProperty(CompositeProperty);
    registerProperty(AdvancedMaterialProperty);
    registerProperty(BoolProperty);
    registerProperty(ButtonProperty);
    registerProperty(CameraProperty);
    registerProperty(DirectoryProperty);
    registerProperty(DoubleMat2Property);
    registerProperty(DoubleMat3Property);
    registerProperty(DoubleMat4Property);
    registerProperty(DoubleProperty);
    registerProperty(DoubleVec2Property);
    registerProperty(DoubleVec3Property);
    registerProperty(DoubleVec4Property);
    registerProperty(FileProperty);
    registerProperty(FloatMat2Property);
    registerProperty(FloatMat3Property);
    registerProperty(FloatMat4Property);
    registerProperty(FloatMinMaxProperty);
    registerProperty(FloatProperty);
    registerProperty(FloatVec2Property);
    registerProperty(FloatVec3Property);
    registerProperty(FloatVec4Property);
    registerProperty(ImageEditorProperty);
    registerProperty(IntMinMaxProperty);
    registerProperty(IntProperty);
    registerProperty(IntVec2Property);
    registerProperty(IntVec3Property);
    registerProperty(IntVec4Property);
    registerProperty(OptionPropertyDouble);
    registerProperty(OptionPropertyFloat);
    registerProperty(OptionPropertyInt);
    registerProperty(OptionPropertyString);
    registerProperty(PlaneProperty);
    registerProperty(PositionProperty);
    registerProperty(SimpleLightingProperty);
    registerProperty(SimpleRaycastingProperty);
    registerProperty(StringProperty);
    registerProperty(TransferFunctionProperty);
    registerProperty(VolumeIndicatorProperty);


    // START OF AUTOGENERATED CODE 
    // The following code has been autogenerated using createconverters.py 
    typedef OrdinalPropertyConverter<FloatProperty, IntProperty> FloatPropertyToIntPropertyConverter;
    typedef OrdinalPropertyConverter<FloatProperty, Int64Property> FloatPropertyToInt64PropertyConverter;
    typedef OrdinalPropertyConverter<FloatProperty, DoubleProperty> FloatPropertyToDoublePropertyConverter;
    typedef OrdinalPropertyConverter<IntProperty, FloatProperty> IntPropertyToFloatPropertyConverter;
    typedef OrdinalPropertyConverter<IntProperty, Int64Property> IntPropertyToInt64PropertyConverter;
    typedef OrdinalPropertyConverter<IntProperty, DoubleProperty> IntPropertyToDoublePropertyConverter;
    typedef OrdinalPropertyConverter<Int64Property, FloatProperty> Int64PropertyToFloatPropertyConverter;
    typedef OrdinalPropertyConverter<Int64Property, IntProperty> Int64PropertyToIntPropertyConverter;
    typedef OrdinalPropertyConverter<Int64Property, DoubleProperty> Int64PropertyToDoublePropertyConverter;
    typedef OrdinalPropertyConverter<DoubleProperty, FloatProperty> DoublePropertyToFloatPropertyConverter;
    typedef OrdinalPropertyConverter<DoubleProperty, IntProperty> DoublePropertyToIntPropertyConverter;
    typedef OrdinalPropertyConverter<DoubleProperty, Int64Property> DoublePropertyToInt64PropertyConverter;
    typedef OrdinalPropertyConverter<FloatVec2Property, DoubleVec2Property> FloatVec2PropertyToDoubleVec2PropertyConverter;
    typedef OrdinalPropertyConverter<FloatVec2Property, IntVec2Property> FloatVec2PropertyToIntVec2PropertyConverter;
    typedef OrdinalPropertyConverter<DoubleVec2Property, FloatVec2Property> DoubleVec2PropertyToFloatVec2PropertyConverter;
    typedef OrdinalPropertyConverter<DoubleVec2Property, IntVec2Property> DoubleVec2PropertyToIntVec2PropertyConverter;
    typedef OrdinalPropertyConverter<IntVec2Property, FloatVec2Property> IntVec2PropertyToFloatVec2PropertyConverter;
    typedef OrdinalPropertyConverter<IntVec2Property, DoubleVec2Property> IntVec2PropertyToDoubleVec2PropertyConverter;
    typedef OrdinalPropertyConverter<FloatVec3Property, DoubleVec3Property> FloatVec3PropertyToDoubleVec3PropertyConverter;
    typedef OrdinalPropertyConverter<FloatVec3Property, IntVec3Property> FloatVec3PropertyToIntVec3PropertyConverter;
    typedef OrdinalPropertyConverter<DoubleVec3Property, FloatVec3Property> DoubleVec3PropertyToFloatVec3PropertyConverter;
    typedef OrdinalPropertyConverter<DoubleVec3Property, IntVec3Property> DoubleVec3PropertyToIntVec3PropertyConverter;
    typedef OrdinalPropertyConverter<IntVec3Property, FloatVec3Property> IntVec3PropertyToFloatVec3PropertyConverter;
    typedef OrdinalPropertyConverter<IntVec3Property, DoubleVec3Property> IntVec3PropertyToDoubleVec3PropertyConverter;
    typedef OrdinalPropertyConverter<FloatVec4Property, DoubleVec4Property> FloatVec4PropertyToDoubleVec4PropertyConverter;
    typedef OrdinalPropertyConverter<FloatVec4Property, IntVec4Property> FloatVec4PropertyToIntVec4PropertyConverter;
    typedef OrdinalPropertyConverter<DoubleVec4Property, FloatVec4Property> DoubleVec4PropertyToFloatVec4PropertyConverter;
    typedef OrdinalPropertyConverter<DoubleVec4Property, IntVec4Property> DoubleVec4PropertyToIntVec4PropertyConverter;
    typedef OrdinalPropertyConverter<IntVec4Property, FloatVec4Property> IntVec4PropertyToFloatVec4PropertyConverter;
    typedef OrdinalPropertyConverter<IntVec4Property, DoubleVec4Property> IntVec4PropertyToDoubleVec4PropertyConverter;

    registerPropertyConverter(ScalarToStringConverter<FloatProperty>);
    registerPropertyConverter(ScalarToStringConverter<IntProperty>);
    registerPropertyConverter(ScalarToStringConverter<Int64Property>);
    registerPropertyConverter(ScalarToStringConverter<DoubleProperty>);
    registerPropertyConverter(VectorToStringConverter<FloatVec2Property>);
    registerPropertyConverter(VectorToStringConverter<DoubleVec2Property>);
    registerPropertyConverter(VectorToStringConverter<IntVec2Property>);
    registerPropertyConverter(VectorToStringConverter<FloatVec3Property>);
    registerPropertyConverter(VectorToStringConverter<DoubleVec3Property>);
    registerPropertyConverter(VectorToStringConverter<IntVec3Property>);
    registerPropertyConverter(VectorToStringConverter<FloatVec4Property>);
    registerPropertyConverter(VectorToStringConverter<DoubleVec4Property>);
    registerPropertyConverter(VectorToStringConverter<IntVec4Property>);

    registerPropertyConverter(FloatPropertyToIntPropertyConverter);
    registerPropertyConverter(FloatPropertyToInt64PropertyConverter);
    registerPropertyConverter(FloatPropertyToDoublePropertyConverter);
    registerPropertyConverter(IntPropertyToFloatPropertyConverter);
    registerPropertyConverter(IntPropertyToInt64PropertyConverter);
    registerPropertyConverter(IntPropertyToDoublePropertyConverter);
    registerPropertyConverter(Int64PropertyToFloatPropertyConverter);
    registerPropertyConverter(Int64PropertyToIntPropertyConverter);
    registerPropertyConverter(Int64PropertyToDoublePropertyConverter);
    registerPropertyConverter(DoublePropertyToFloatPropertyConverter);
    registerPropertyConverter(DoublePropertyToIntPropertyConverter);
    registerPropertyConverter(DoublePropertyToInt64PropertyConverter);
    registerPropertyConverter(FloatVec2PropertyToDoubleVec2PropertyConverter);
    registerPropertyConverter(FloatVec2PropertyToIntVec2PropertyConverter);
    registerPropertyConverter(DoubleVec2PropertyToFloatVec2PropertyConverter);
    registerPropertyConverter(DoubleVec2PropertyToIntVec2PropertyConverter);
    registerPropertyConverter(IntVec2PropertyToFloatVec2PropertyConverter);
    registerPropertyConverter(IntVec2PropertyToDoubleVec2PropertyConverter);
    registerPropertyConverter(FloatVec3PropertyToDoubleVec3PropertyConverter);
    registerPropertyConverter(FloatVec3PropertyToIntVec3PropertyConverter);
    registerPropertyConverter(DoubleVec3PropertyToFloatVec3PropertyConverter);
    registerPropertyConverter(DoubleVec3PropertyToIntVec3PropertyConverter);
    registerPropertyConverter(IntVec3PropertyToFloatVec3PropertyConverter);
    registerPropertyConverter(IntVec3PropertyToDoubleVec3PropertyConverter);
    registerPropertyConverter(FloatVec4PropertyToDoubleVec4PropertyConverter);
    registerPropertyConverter(FloatVec4PropertyToIntVec4PropertyConverter);
    registerPropertyConverter(DoubleVec4PropertyToFloatVec4PropertyConverter);
    registerPropertyConverter(DoubleVec4PropertyToIntVec4PropertyConverter);
    registerPropertyConverter(IntVec4PropertyToFloatVec4PropertyConverter);
    registerPropertyConverter(IntVec4PropertyToDoubleVec4PropertyConverter);

    // END OF AUTOGENERATED CODE 

}
Exemple #5
0
int main(int argc, char **argv, char **envp)
{
	struct ReadBuffer * buf = newReadBuffer(fileno(stdin));
	char * line = NULL;
	size_t linesz = 0;
	int act = 0;

	setupSignals();

	openlog("squidGuard", LOG_PID | LOG_NDELAY | LOG_CONS, SYSLOG_FAC);

	if (!parseOptions(argc, argv)) {
		closelog();
		exit(1);
	}

	registerSettings();

	//sgSetGlobalErrorLogFile();
	sgReadConfig(configFile);
	sgSetGlobalErrorLogFile();

	sgLogInfo("squidGuard %s started", VERSION);

	if (globalUpdate || globalCreateDb != NULL) {
		sgLogInfo("db update done");
		sgLogInfo("squidGuard stopped.");
		closelog();

		freeAllLists();
		exit(0);
	}

	sgLogInfo("squidGuard ready for requests");

	while ((act = doBufferRead(buf, &line, &linesz)) >= 0) {
		struct AccessList *acl;
		static struct SquidInfo request;

		if (act == 0) {
			sgReloadConfig(configFile);
			continue;
		}

		if (authzMode == 1) {
			if (parseAuthzLine(line, &request) != 1) {
				sgLogError("Error parsing squid acl helper line");
				denyOnError("Error parsing squid acl helper line");
				continue;
			}
		} else {
			if (parseLine(line, &request) != 1) {
				sgLogError("Error parsing squid redirector line");
				denyOnError("Error parsing squid redirector line");
				continue;
			}
		}

		if (inEmergencyMode) {
			const char *message = "squidGuard is in emergency mode, check configuration";
			if (passthrough)
				allowOnError(message);
			else
				denyOnError(message);
			continue;
		}

		for (acl = getFirstAccessList(); acl; acl = acl->next) {
			char *redirect = NULL;
			enum AccessResults access = checkAccess(acl, &request, &redirect);

			if (access == ACCESS_UNDEFINED)
				continue;

			if (access == ACCESS_GRANTED) {
				grantAccess(acl);
				break;
			}

			denyAccess(acl, redirect, &request);
			sgFree(redirect);

			break;
		}

		fflush(stdout);
	}

	sgLogNotice("squidGuard stopped");
	closelog();
	freeAllLists();
	sgFree(line);
	freeReadBuffer(buf);
	exit(0);
}