Announcement

Collapse
No announcement yet.

Integrating Cairo with UE?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Integrating Cairo with UE?

    I was looking for ways to add vector graphics function to UE, when I stumbled upon Cairo. Cairo has all the functions I want and seems to be designed for real time use. So I wondered, if it is realistic to link Cairo with UE. I know enough C++ to do it, but I don't know how UE will react to it. Has anyone experience with linking to external C++ libraries and knows where the pitfalls are?

    #2
    I would imagine the pitfalls are getting it integrated with UE4's rendering code. If you have a solid knowledge of DX11 and UE4's rendering system then it wouldn't be too terrible.

    Comment


      #3
      Cairo has the ability to render to a memory buffer. So my idea is, to push the resulting buffer into a dynamic texture. It doesn't sound too hard. But I suspect I'm missing something.
      If I manage to pull this off, I'll make the result available as open source. So if anyone has any helpful suggestions, I would appreciate it.

      Comment


        #4
        So I went ahead and tried to link to the Cairo library. I used the Win64 libraries from GTK+ and followed the instructions from here. I wrote a short Blueprint function, that created a Cairo surface and deleted it again as a test. Everything compiled fine. I copied the Cairo DLLs and dependencies into the "Binaries/Win64" folder. But when I restarted, UE4 immediately exited with a rather unhelpful message:

        Code:
        LogModuleManager:Warning: ModuleManager: Unable to load module 'Z:/Unreal Projects/CairoTest/Binaries/Win64/UE4Editor-CairoTest.dll' because the file couldn't be loaded by the OS.
        That's all the log file has to say about it .

        Comment


          #5
          I had missing dependencies. GTK+ is a mess. I just threw every DLL in and now it doesn't crash anymore.

          Comment


            #6
            Click image for larger version

Name:	screenshot.jpg
Views:	1
Size:	23.0 KB
ID:	1080751

            I did it! And it was much easier than I expected.

            This is a rectangle and a 360° arc drawn by Cairo and then copied to a dynamic Texture2D.

            Here's the code, if someone is curious:

            Code:
            	cairo_t *cr;
            	cairo_surface_t *surface;
            	UTexture2D * Texture;
            	int stride;
            
            	int img_size = 256;
            
            	stride = cairo_format_stride_for_width(CAIRO_FORMAT_ARGB32, img_size);
            	unsigned char* data = (unsigned char *)FMemory::Malloc(img_size * stride);
            	
            	surface = cairo_image_surface_create_for_data(data, CAIRO_FORMAT_ARGB32, img_size, img_size, stride);
            	cr = cairo_create(surface);
            	cairo_set_source_rgb(cr, 1.0, 0, 0);
            	cairo_fill(cr);
            	cairo_set_line_width(cr, 5.0);
            	cairo_rectangle(cr, 10, 10, 200, 200);
            	cairo_arc(cr, 100, 100, 50, 0, 359);
            	cairo_stroke(cr);
            
            	Texture = UTexture2D::CreateTransient(img_size, img_size);
            	Texture->MipGenSettings = TextureMipGenSettings::TMGS_NoMipmaps;
            	Texture->SRGB = 0;
            	FTexture2DMipMap& Mip = Texture->PlatformData->Mips[0];
            	void* Data = Mip.BulkData.Lock(LOCK_READ_WRITE);
            	FMemory::Memcpy(Data, data, img_size * stride);
            	Mip.BulkData.Unlock();
            	Texture->UpdateResource();
            
            	cairo_destroy(cr);
            	FMemory::Free(data);

            Comment


              #7
              I'd love to be able to do this but my C++ voodoo is not strong enough :/

              I couldn't even tell after reading the linking static libraries page if you had to build UE4 from source to be able to do this or if you could just put a bunch of DLL's in a certain folder and tweak some config files.

              Is there any chance you could maybe do a tute explaining some of the details of getting this going?

              Comment


                #8
                Hi,
                you're the first one to be interested in this.
                The completed sample project is here: https://github.com/Banbury/UE4Cairo
                Just clone the project and open it with UE4. You will need to install Visual Studio 2013. But you won't need to compile UE4. Just the sources in the project. There's a sample level, that shows all the functions.
                Currently there's no easy way to move the code to a different project. I mean to convert this into a plugin (now that I know how it's done). But I have no idea, when I have the time to do it. Just watch the Github repo and hope for the best .
                If you're just interested in the mechanics of writing plugins in C++, have a look at this project: https://github.com/Banbury/UE4Elias
                I have learned a lot between those two projects and UE4Elias is the more advanced.
                If you have questions, I'll try to answer them. But right now I have no time to write tutorials.

                Greetings

                Banbury

                Comment


                  #9
                  Nice! Does this require an Engine change to make it happen or is it possible to integrate as a Plugin?

                  Comment


                    #10
                    Just read the post above yours.

                    Comment


                      #11
                      Hi Banbury,

                      Thanks for replying so quickly!

                      Unfortunately when I try to open your example project (either from VS2013 or UE4.8.3) I get an error message saying:

                      "The game module 'CairoTest' could not be loaded. There may be an operating system error or the module may not be properly set up."

                      I'll play around for a while and see what I can figure out...

                      Comment


                        #12
                        I have no idea, what the problem is. I can open the project with UE 4.8.3. Does the log file say something?

                        Comment


                          #13
                          Hi Banbury,

                          Ok, home from work again, back into it...

                          Even though they're basic, for the sake of being comprehensive here are the steps I took to try and open the project on my machine:

                          Click image for larger version

Name:	20150803_202430_post.jpg
Views:	1
Size:	221.4 KB
ID:	1083131
                          Click image for larger version

Name:	20150803_202502_post.jpg
Views:	1
Size:	58.2 KB
ID:	1083132
                          Click image for larger version

Name:	20150803_202802_post.jpg
Views:	1
Size:	232.3 KB
ID:	1083133
                          Click image for larger version

Name:	20150803_202909_post.jpg
Views:	1
Size:	81.1 KB
ID:	1083134

                          And here are the contents of the two log files in saved/logs/

                          CairoTest-backup-2015.08.03-20.25.48.log

                          [2015.08.03-10.24.52:030][ 0]Log file open, 08/03/15 20:24:52
                          [2015.08.03-10.24.52:030][ 0]LogInitisplay: Running engine for game: CairoTest
                          [2015.08.03-10.24.52:030][ 0]LogInitisplay: RandInit(627805524) SRandInit(627805524).
                          [2015.08.03-10.24.52:030][ 0]LogTaskGraph: Started task graph with 4 named threads and 7 total threads.
                          [2015.08.03-10.24.52:030][ 0]LogStats: Stats thread started
                          [2015.08.03-10.24.52:030][ 0]LogInit:Warning: Incompatible or missing module: UE4Editor-CairoTest.dll
                          [2015.08.03-10.25.05:419][ 0]LogExit: Preparing to exit.
                          [2015.08.03-10.25.05:438][ 0]LogModuleManager: Shutting down and abandoning module TextureCompressor (13)
                          [2015.08.03-10.25.05:438][ 0]LogModuleManager: Shutting down and abandoning module ShaderCore (12)
                          [2015.08.03-10.25.05:438][ 0]LogModuleManager: Shutting down and abandoning module Landscape (11)
                          [2015.08.03-10.25.05:438][ 0]LogModuleManager: Shutting down and abandoning module SlateRHIRenderer (10)
                          [2015.08.03-10.25.05:438][ 0]LogModuleManager: Shutting down and abandoning module OpenGLDrv (9)
                          [2015.08.03-10.25.05:443][ 0]LogModuleManager: Shutting down and abandoning module D3D11RHI (8)
                          [2015.08.03-10.25.05:443][ 0]LogModuleManager: Shutting down and abandoning module Renderer (7)
                          [2015.08.03-10.25.05:443][ 0]LogModuleManager: Shutting down and abandoning module Engine (6)
                          [2015.08.03-10.25.05:443][ 0]LogModuleManager: Shutting down and abandoning module CoreUObject (5)
                          [2015.08.03-10.25.05:443][ 0]LogModuleManager: Shutting down and abandoning module NetworkFile (4)
                          [2015.08.03-10.25.05:443][ 0]LogModuleManager: Shutting down and abandoning module StreamingFile (3)
                          [2015.08.03-10.25.05:443][ 0]LogModuleManager: Shutting down and abandoning module SandboxFile (2)
                          [2015.08.03-10.25.05:443][ 0]LogModuleManager: Shutting down and abandoning module PakFile (1)
                          [2015.08.03-10.25.05:473][ 0]LogExit: Exiting.
                          [2015.08.03-10.25.05:511][ 0]Log file closed, 08/03/15 20:25:05
                          CairoTest.log

                          [2015.08.03-10.25.48:125][ 0]Log file open, 08/03/15 20:25:48
                          [2015.08.03-10.25.48:125][ 0]LogInitisplay: Running engine for game: CairoTest
                          [2015.08.03-10.25.48:125][ 0]LogInitisplay: RandInit(764341590) SRandInit(764341590).
                          [2015.08.03-10.25.48:125][ 0]LogTaskGraph: Started task graph with 4 named threads and 7 total threads.
                          [2015.08.03-10.25.48:125][ 0]LogStats: Stats thread started
                          [2015.08.03-10.25.48:125][ 0]LogInit:Warning: Incompatible or missing module: UE4Editor-CairoTest.dll
                          [2015.08.03-10.25.51:270][ 0]Running C:/Program Files/Unreal Engine/4.8/Engine/Binaries/DotNET/UnrealBuildTool.exe CairoTest Development Win64 -project="X:/dev/3D/Unreal/UE4/projects/_examples/UE4Cairo-master/CairoTest.uproject" -rocket -editorrecompile -progress -noubtmakefiles
                          [2015.08.03-10.26.36:946][ 0]Parsing headers for CairoTestEditor
                          [2015.08.03-10.26.55:152][ 0]Reflection code generated for CairoTestEditor
                          [2015.08.03-10.27.10:053][ 0]Performing 8 actions (4 in parallel)
                          [2015.08.03-10.27.10:156][ 0][2/8] Resource ModuleVersionResource.rc.inl
                          [2015.08.03-10.27.10:156][ 0][3/8] Resource PCLaunch.rc
                          [2015.08.03-10.27.10:256][ 0]PCH.CairoTest.h.cpp
                          [2015.08.03-10.27.53:460][ 0]CairoTest.generated.cpp
                          [2015.08.03-10.27.53:460][ 0]CairoTest.cpp
                          [2015.08.03-10.27.53:461][ 0]CairoBlueprintLibrary.cpp
                          [2015.08.03-10.27.53:461][ 0]DummyClass.cpp
                          [2015.08.03-10.27.53:762][ 0]x:\dev\3d\unreal\ue4\projects\_examples\ue4cairo-master\source\cairotest\cairoblueprintlibrary.cpp(154) : warning C4701: potentially uninitialized local variable 'c_slant' used
                          [2015.08.03-10.27.53:762][ 0]x:\dev\3d\unreal\ue4\projects\_examples\ue4cairo-master\source\cairotest\cairoblueprintlibrary.cpp(154) : warning C4701: potentially uninitialized local variable 'c_weight' used
                          [2015.08.03-10.27.53:863][ 0][8/8] Link UE4Editor-CairoTest.dll
                          [2015.08.03-10.27.55:563][ 0] Creating library X:\dev\3D\Unreal\UE4\projects\_examples\UE4Cairo-master\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-CairoTest.lib and object X:\dev\3D\Unreal\UE4\projects\_examples\UE4Cairo-master\Intermediate/Build/Win64\UE4Editor\Development\UE4Editor-CairoTest.exp
                          [2015.08.03-10.27.57:163][ 0]-------- End Detailed Actions Stats -----------------------------------------------------------
                          [2015.08.03-10.27.57:663][ 0]Total build time: 125.10 seconds
                          [2015.08.03-10.27.58:228][ 0]LogInit: Version: 4.8.3-2634408+++depot+UE4-Releases+4.8
                          [2015.08.03-10.27.58:228][ 0]LogInit: API Version: 2579680
                          [2015.08.03-10.27.58:228][ 0]LogInit: Compiled (64-bit): Jul 27 2015 16:24:33
                          [2015.08.03-10.27.58:228][ 0]LogInit: Compiled with Visual C++: 18.00.21005.01
                          [2015.08.03-10.27.58:228][ 0]LogInit: Build Configuration: Development
                          [2015.08.03-10.27.58:228][ 0]LogInit: Branch Name: ++depot+UE4-Releases+4.8
                          [2015.08.03-10.27.58:228][ 0]LogInit: Command line:
                          [2015.08.03-10.27.58:228][ 0]LogInit: Base directory: C:/Program Files/Unreal Engine/4.8/Engine/Binaries/Win64/
                          [2015.08.03-10.27.58:228][ 0]LogInit: Rocket: 1
                          [2015.08.03-10.27.58:305][ 0]LogInit: Using libcurl 7.41.0
                          [2015.08.03-10.27.58:305][ 0]LogInit: - built for x86_64-pc-win32
                          [2015.08.03-10.27.58:305][ 0]LogInit: - supports SSL with WinSSL
                          [2015.08.03-10.27.58:305][ 0]LogInit: - other features:
                          [2015.08.03-10.27.58:305][ 0]LogInit: CURL_VERSION_SSL
                          [2015.08.03-10.27.58:305][ 0]LogInit: CURL_VERSION_IPV6
                          [2015.08.03-10.27.58:305][ 0]LogInit: CURL_VERSION_ASYNCHDNS
                          [2015.08.03-10.27.58:305][ 0]LogInit: CURL_VERSION_LARGEFILE
                          [2015.08.03-10.27.58:305][ 0]LogInit: CURL_VERSION_IDN
                          [2015.08.03-10.27.58:305][ 0]LogInit: CurlRequestOptions (configurable via config and command line):
                          [2015.08.03-10.27.58:306][ 0]LogInit: - bVerifyPeer = true - Libcurl will verify peer certificate
                          [2015.08.03-10.27.58:306][ 0]LogInit: - bUseHttpProxy = false - Libcurl will NOT use HTTP proxy
                          [2015.08.03-10.27.58:306][ 0]LogInit: - bDontReuseConnections = false - Libcurl will reuse connections
                          [2015.08.03-10.27.58:306][ 0]LogInit: - CertBundlePath = nullptr - Libcurl will use whatever was configured at build time.
                          [2015.08.03-10.27.58:369][ 0]LogOnline:Warning: No default platform service specified for OnlineSubsystem
                          [2015.08.03-10.27.58:682][ 0]LogInit: Presizing for 0 objects not considered by GC, pre-allocating 0 bytes.
                          [2015.08.03-10.27.58:871][ 0]LogInit: Object subsystem initialized
                          [2015.08.03-10.27.59:010][ 0]LogConsoleResponse:Warning: Skipping Unknown console variable: 'TranslucentSortAxis = (X=0.000000,Y=-1.000000,Z=0.000000)'
                          [2015.08.03-10.27.59:010][ 0]LogConsoleResponse:Warning: Found in ini file 'X:/dev/3D/Unreal/UE4/projects/_examples/UE4Cairo-master/Saved/Config/Windows/Engine.ini', in section '[/Script/Engine.RendererSettings]'
                          [2015.08.03-10.27.59:010][ 0]LogConsoleResponse:Warning: Skipping Unknown console variable: 'UIScaleRule = ShortestSide'
                          [2015.08.03-10.27.59:010][ 0]LogConsoleResponse:Warning: Found in ini file 'X:/dev/3D/Unreal/UE4/projects/_examples/UE4Cairo-master/Saved/Config/Windows/Engine.ini', in section '[/Script/Engine.RendererSettings]'
                          [2015.08.03-10.27.59:010][ 0]LogConsoleResponse:Warning: Skipping Unknown console variable: 'UIScaleCurve = (EditorCurveData=(Keys=),ExternalCurve=None)'
                          [2015.08.03-10.27.59:010][ 0]LogConsoleResponse:Warning: Found in ini file 'X:/dev/3D/Unreal/UE4/projects/_examples/UE4Cairo-master/Saved/Config/Windows/Engine.ini', in section '[/Script/Engine.RendererSettings]'
                          [2015.08.03-10.27.59:152][ 0]LogInit: Selected Device Profile: [Windows]
                          [2015.08.03-10.27.59:152][ 0]LogInit: Applying CVar settings loaded from the selected device profile: [Windows]
                          [2015.08.03-10.27.59:429][ 0]LogInit: Computer: MR-LAPTOP
                          [2015.08.03-10.27.59:429][ 0]LogInit: User: user
                          [2015.08.03-10.27.59:429][ 0]LogInit: CPU Page size=4096, Cores=4
                          [2015.08.03-10.27.59:429][ 0]LogInit: High frequency timer resolution =2.241044 MHz
                          [2015.08.03-10.27.59:447][ 0]LogMemory: Memory total: Physical=7.9GB (8GB approx)
                          [2015.08.03-10.27.59:472][ 0]LogMemory: Platform Memory Stats for Windows
                          [2015.08.03-10.27.59:472][ 0]LogMemory: Process Physical Memory: 55.66 MB used, 55.66 MB peak
                          [2015.08.03-10.27.59:472][ 0]LogMemory: Process Virtual Memory: 25.39 MB used, 25.39 MB peak
                          [2015.08.03-10.27.59:472][ 0]LogMemory: Physical Memory: 3896.23 MB used, 8089.43 MB total
                          [2015.08.03-10.27.59:472][ 0]LogMemory: Virtual Memory: 299.09 MB used, 8388608.00 MB total
                          [2015.08.03-10.28.00:369][ 0]LogTextLocalizationManager: The requested culture ('en_US') has no localization data; parent culture's ('en') localization data will be used.
                          [2015.08.03-10.28.00:880][ 0]LogTextLocalizationManager:Warning: Loaded localization resources contain conflicting entries for (Namespace:ContentBrowser, Key:ImportAssetToolTip):
                          Localization Resource: (C:/Program Files/Unreal Engine/4.8/Engine/Content/Localization/Editor/en/Editor.locres) Source String Hash: (-630476809) Localized String: (Import to {0}...)
                          Localization Resource: (C:/Program Files/Unreal Engine/4.8/Engine/Content/Localization/Editor/en/Editor.locres) Source String Hash: (1271782899) Localized String: (Imports an asset from file to this folder.)
                          [2015.08.03-10.28.01:684][ 0]LogD3D11RHI: Found D3D11 adapter 0: NVIDIA GeForce GT 650M (Feature Level 11_0)
                          [2015.08.03-10.28.01:684][ 0]LogD3D11RHI: Adapter has 1990MB of dedicated video memory, 0MB of dedicated system memory, and 2048MB of shared system memory, 2 output[s]
                          [2015.08.03-10.28.01:697][ 0]LogD3D11RHI: Found D3D11 adapter 1: NVIDIA GeForce GT 650M (Feature Level 11_0)
                          [2015.08.03-10.28.01:697][ 0]LogD3D11RHI: Adapter has 1990MB of dedicated video memory, 0MB of dedicated system memory, and 2048MB of shared system memory, 0 output[s]
                          [2015.08.03-10.28.01:697][ 0]LogD3D11RHI: Chosen D3D11 Adapter Id = 0
                          [2015.08.03-10.28.01:715][ 0]LogD3D11RHI: InitD3DDevice
                          [2015.08.03-10.28.01:724][ 0]LogD3D11RHI: !Direct3DDevice
                          [2015.08.03-10.28.01:741][ 0]LogRHI: Texture pool is 1361 MB (70% of 1945 MB)
                          [2015.08.03-10.28.01:780][ 0]LogD3D11RHI: Async texture creation enabled
                          [2015.08.03-10.28.01:910][ 0]LogShaderCompilersisplay: Using Local Shader Compiler.
                          [2015.08.03-10.28.05:542][ 0]LogTempisplay: Loaded TP DesktopTargetPlatform
                          [2015.08.03-10.28.05:579][ 0]LogTempisplay: Loaded TP WindowsClientTargetPlatform
                          [2015.08.03-10.28.05:611][ 0]LogTempisplay: Loaded TP WindowsNoEditorTargetPlatform
                          [2015.08.03-10.28.05:641][ 0]LogTempisplay: Loaded TP WindowsServerTargetPlatform
                          [2015.08.03-10.28.05:711][ 0]LogTempisplay: Loaded TP WindowsTargetPlatform
                          [2015.08.03-10.28.05:762][ 0]LogTempisplay: Loaded TP AndroidTargetPlatform
                          [2015.08.03-10.28.05:786][ 0]LogTempisplay: Loaded TP Android_ASTCTargetPlatform
                          [2015.08.03-10.28.05:810][ 0]LogTempisplay: Loaded TP Android_ATCTargetPlatform
                          [2015.08.03-10.28.05:835][ 0]LogTempisplay: Loaded TP Android_DXTTargetPlatform
                          [2015.08.03-10.28.05:866][ 0]LogTempisplay: Loaded TP Android_ETC1TargetPlatform
                          [2015.08.03-10.28.05:904][ 0]LogTempisplay: Loaded TP Android_ETC2TargetPlatform
                          [2015.08.03-10.28.05:935][ 0]LogTempisplay: Loaded TP Android_PVRTCTargetPlatform
                          [2015.08.03-10.28.06:088][ 0]LogTempisplay: Loaded TP IOSTargetPlatform
                          [2015.08.03-10.28.06:117][ 0]LogTempisplay: Loaded TP LinuxNoEditorTargetPlatform
                          [2015.08.03-10.28.06:149][ 0]LogTempisplay: Loaded TP LinuxServerTargetPlatform
                          [2015.08.03-10.28.06:203][ 0]LogTempisplay: Loaded TP LinuxTargetPlatform
                          [2015.08.03-10.28.06:203][ 0]LogTargetPlatformManagerisplay: Building Assets For Windows
                          [2015.08.03-10.28.07:316][ 0]LogDerivedDataCacheisplay: Max Cache Size: 512 MB
                          [2015.08.03-10.28.08:687][ 0]LogDerivedDataCache: Loaded boot cache 1.34s 68MB C:/Users/user/AppData/Local/UnrealEngine/4.8/DerivedDataCache/Boot.ddc.
                          [2015.08.03-10.28.08:687][ 0]LogDerivedDataCacheisplay: Loaded Boot cache: C:/Users/user/AppData/Local/UnrealEngine/4.8/DerivedDataCache/Boot.ddc
                          [2015.08.03-10.28.08:687][ 0]LogDerivedDataCache: FDerivedDataBackendGraph: Pak pak cache file X:/dev/3D/Unreal/UE4/projects/_examples/UE4Cairo-master/DerivedDataCache/DDC.ddp not found, will not use a pak cache.
                          [2015.08.03-10.28.08:688][ 0]LogDerivedDataCache: Unable to find inner node Pak for hierarchical cache Hierarchy.
                          [2015.08.03-10.28.08:688][ 0]LogDerivedDataCache: FDerivedDataBackendGraph: CompressedPak pak cache file X:/dev/3D/Unreal/UE4/projects/_examples/UE4Cairo-master/DerivedDataCache/Compressed.ddp not found, will not use a pak cache.
                          [2015.08.03-10.28.08:688][ 0]LogDerivedDataCache: Unable to find inner node CompressedPak for hierarchical cache Hierarchy.
                          [2015.08.03-10.28.08:986][ 0]LogDerivedDataCacheisplay: Pak cache opened for reading ../../../Engine/DerivedDataCache/Compressed.ddp.
                          [2015.08.03-10.28.08:998][ 0]LogDerivedDataCache: Using Local data cache path C:/Users/user/AppData/Local/UnrealEngine/Common/DerivedDataCache: Writable
                          [2015.08.03-10.28.17:777][ 0]LogInit: Selected Device Profile: [Windows]
                          [2015.08.03-10.28.17:854][ 0]ImportText (ComponentSweepMultiTests): Missing closing parenthesis: (RootShapeAsset="/Engine/BasicShapes/Cube.Cube",ShapeType="TriggerCapsule",HitResult=(Time=0.50,Location=(X=-100.000015,Y=0.0,Z=100.000015),ImpactPoint=(X=-50.0,Y=0.0,Z=50.0),Normal=(X=-1.0,Y=-0.0,Z=0.0),ImpactNormal=(X=0.0,Y=0.0,Z=1.0),TraceStart=(X=-200.0,Y=0.0,Z=200.0),TraceEnd=(X=0.0,Y=0.0,Z=0.0))
                          [2015.08.03-10.28.17:855][ 0]ImportText (LineTraceSingleByChannelTests): Missing closing parenthesis: (RootShapeAsset="/Engine/BasicShapes/Cube.Cube",HitResult=(Time=0.50,Location=(X=-100.000015,Y=0.0,Z=100.000015),ImpactPoint=(X=-50.0,Y=0.0,Z=50.0),Normal=(X=-1.0,Y=-0.0,Z=0.0),ImpactNormal=(X=0.0,Y=0.0,Z=1.0),TraceStart=(X=-200.0,Y=0.0,Z=200.0),TraceEnd=(X=0.0,Y=0.0,Z=0.0))
                          [2015.08.03-10.28.18:060][ 0]LogMeshUtilities: No automatic mesh reduction module available
                          [2015.08.03-10.28.18:060][ 0]LogMeshUtilities: No automatic mesh merging module available
                          [2015.08.03-10.28.21:119][ 0]LogInit: WinSock: version 1.1 (2.2), MaxSocks=32767, MaxUdp=65467
                          [2015.08.03-10.28.50:568][ 0]LogAssetRegistry: FAssetRegistry took 0.0104 seconds to start up
                          [2015.08.03-10.28.50:647][ 0]LogDirectoryWatcher:Warning: Failed to begin reading directory changes for ../../../Engine/Plugins/Experimental/CharacterAI/Content/. Error: 0
                          [2015.08.03-10.28.51:004][ 0]UdpMessaging: Initializing bridge on interface 0.0.0.0:0 to multicast group 230.0.0.1:6666.
                          [2015.08.03-10.28.51:168][ 0]LogModuleManager:Warning: ModuleManager: Unable to load module 'X:/dev/3D/Unreal/UE4/projects/_examples/UE4Cairo-master/Binaries/Win64/UE4Editor-CairoTest.dll' because the file couldn't be loaded by the OS.
                          [2015.08.03-10.29.14:514][ 0]LogExit: Preparing to exit.
                          [2015.08.03-10.29.16:518][ 0]LogExit: Object subsystem successfully closed.
                          [2015.08.03-10.29.16:611][ 0]LogD3D11RHI: Shutdown
                          [2015.08.03-10.29.16:611][ 0]LogD3D11RHI: CleanupD3DDevice
                          [2015.08.03-10.29.16:686][ 0]LogD3D11RHI: ~FD3D11DynamicRHI
                          [2015.08.03-10.29.16:686][ 0]LogModuleManager: Shutting down and abandoning module UdpMessaging (84)
                          [2015.08.03-10.29.16:786][ 0]LogModuleManager: Shutting down and abandoning module DirectoryWatcher (83)
                          [2015.08.03-10.29.16:786][ 0]LogModuleManager: Shutting down and abandoning module AssetRegistry (82)
                          [2015.08.03-10.29.17:163][ 0]LogModuleManager: Shutting down and abandoning module SubstanceCore (81)
                          [2015.08.03-10.29.17:163][ 0]LogModuleManager: Shutting down and abandoning module Paper2D (80)
                          [2015.08.03-10.29.17:184][ 0]LogModuleManager: Shutting down and abandoning module WindowsMoviePlayer (79)
                          [2015.08.03-10.29.17:186][ 0]LogModuleManager: Shutting down and abandoning module Media (78)
                          [2015.08.03-10.29.17:186][ 0]LogModuleManager: Shutting down and abandoning module WmfMedia (77)
                          [2015.08.03-10.29.17:186][ 0]LogModuleManager: Shutting down and abandoning module OnlineBlueprintSupport (76)
                          [2015.08.03-10.29.17:187][ 0]LogModuleManager: Shutting down and abandoning module PropertyEditor (75)
                          [2015.08.03-10.29.17:187][ 0]LogModuleManager: Shutting down and abandoning module BehaviorTreeEditor (74)
                          [2015.08.03-10.29.17:215][ 0]LogModuleManager: Shutting down and abandoning module FunctionalTesting (73)
                          [2015.08.03-10.29.17:242][ 0]LogModuleManager: Shutting down and abandoning module CollisionAnalyzer (72)
                          [2015.08.03-10.29.17:274][ 0]LogModuleManager: Shutting down and abandoning module WorkspaceMenuStructure (71)
                          [2015.08.03-10.29.17:274][ 0]LogModuleManager: Shutting down and abandoning module MessageLog (70)
                          [2015.08.03-10.29.17:274][ 0]LogModuleManager: Shutting down and abandoning module Sequencer (69)
                          [2015.08.03-10.29.17:306][ 0]LogModuleManager: Shutting down and abandoning module AssetTools (68)
                          [2015.08.03-10.29.17:369][ 0]LogModuleManager: Shutting down and abandoning module UMGEditor (67)
                          [2015.08.03-10.29.17:398][ 0]LogModuleManager: Shutting down and abandoning module UMG (66)
                          [2015.08.03-10.29.17:443][ 0]LogModuleManager: Shutting down and abandoning module Slate (65)
                          [2015.08.03-10.29.17:443][ 0]LogModuleManager: Shutting down and abandoning module EditorStyle (64)
                          [2015.08.03-10.29.17:450][ 0]LogModuleManager: Shutting down and abandoning module SessionServices (63)
                          [2015.08.03-10.29.17:450][ 0]LogModuleManager: Shutting down and abandoning module SourceCodeAccess (62)
                          [2015.08.03-10.29.17:450][ 0]LogModuleManager: Shutting down and abandoning module HeadMountedDisplay (61)
                          [2015.08.03-10.29.17:450][ 0]LogModuleManager: Shutting down and abandoning module XAudio2 (60)
                          [2015.08.03-10.29.17:450][ 0]LogModuleManager: Shutting down and abandoning module Networking (58)
                          [2015.08.03-10.29.17:450][ 0]LogModuleManager: Shutting down and abandoning module Core (57)
                          [2015.08.03-10.29.17:450][ 0]LogModuleManager: Shutting down and abandoning module KismetCompiler (56)
                          [2015.08.03-10.29.17:463][ 0]LogModuleManager: Shutting down and abandoning module PhysXFormats (55)
                          [2015.08.03-10.29.17:463][ 0]LogModuleManager: Shutting down and abandoning module MeshUtilities (54)
                          [2015.08.03-10.29.17:473][ 0]LogModuleManager: Shutting down and abandoning module DerivedDataCache (53)
                          [2015.08.03-10.29.17:522][ 0]LogDerivedDataCache: Shutdown
                          [2015.08.03-10.29.17:522][ 0]LogModuleManager: Shutting down and abandoning module ShaderFormatOpenGL (52)
                          [2015.08.03-10.29.17:534][ 0]LogModuleManager: Shutting down and abandoning module ShaderFormatD3D (51)
                          [2015.08.03-10.29.17:534][ 0]LogModuleManager: Shutting down and abandoning module MetalShaderFormat (50)
                          [2015.08.03-10.29.17:568][ 0]LogModuleManager: Shutting down and abandoning module TextureFormatUncompressed (49)
                          [2015.08.03-10.29.17:568][ 0]LogModuleManager: Shutting down and abandoning module TextureFormatPVR (48)
                          [2015.08.03-10.29.17:568][ 0]LogModuleManager: Shutting down and abandoning module TextureFormatIntelISPCTexComp (47)
                          [2015.08.03-10.29.17:568][ 0]LogModuleManager: Shutting down and abandoning module TextureFormatDXT (46)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module ImageWrapper (45)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module TextureFormatASTC (44)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module TextureFormatAndroid (43)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module AudioFormatOpus (42)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module AudioFormatOgg (41)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module AudioFormatADPCM (40)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module LinuxTargetPlatform (39)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module LinuxServerTargetPlatform (38)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module LinuxNoEditorTargetPlatform (37)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module Messaging (36)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module IOSTargetPlatform (35)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module HTML5TargetPlatform (34)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module Android_PVRTCTargetPlatform (33)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module Android_ETC2TargetPlatform (32)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module Android_ETC1TargetPlatform (31)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module Android_DXTTargetPlatform (30)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module Android_ATCTargetPlatform (29)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module Android_ASTCTargetPlatform (28)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module AndroidTargetPlatform (27)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module WindowsTargetPlatform (26)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module WindowsServerTargetPlatform (25)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module WindowsNoEditorTargetPlatform (24)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module WindowsClientTargetPlatform (23)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module DesktopTargetPlatform (22)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module TargetPlatform (21)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module InputCore (20)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module Settings (19)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module OnlineSubsystem (17)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module HTTP (16)
                          [2015.08.03-10.29.17:569][ 0]LogModuleManager: Shutting down and abandoning module ExampleDeviceProfileSelector (15)
                          [2015.08.03-10.29.17:570][ 0]LogModuleManager: Shutting down and abandoning module DesktopPlatform (14)
                          [2015.08.03-10.29.17:570][ 0]LogModuleManager: Shutting down and abandoning module TextureCompressor (13)
                          [2015.08.03-10.29.17:570][ 0]LogModuleManager: Shutting down and abandoning module ShaderCore (12)
                          [2015.08.03-10.29.17:570][ 0]LogModuleManager: Shutting down and abandoning module Landscape (11)
                          [2015.08.03-10.29.17:570][ 0]LogModuleManager: Shutting down and abandoning module SlateRHIRenderer (10)
                          [2015.08.03-10.29.17:589][ 0]LogModuleManager: Shutting down and abandoning module OpenGLDrv (9)
                          [2015.08.03-10.29.17:589][ 0]LogModuleManager: Shutting down and abandoning module D3D11RHI (8)
                          [2015.08.03-10.29.17:589][ 0]LogModuleManager: Shutting down and abandoning module Renderer (7)
                          [2015.08.03-10.29.17:589][ 0]LogModuleManager: Shutting down and abandoning module Engine (6)
                          [2015.08.03-10.29.17:589][ 0]LogModuleManager: Shutting down and abandoning module CoreUObject (5)
                          [2015.08.03-10.29.17:589][ 0]LogModuleManager: Shutting down and abandoning module NetworkFile (4)
                          [2015.08.03-10.29.17:589][ 0]LogModuleManager: Shutting down and abandoning module StreamingFile (3)
                          [2015.08.03-10.29.17:589][ 0]LogModuleManager: Shutting down and abandoning module SandboxFile (2)
                          [2015.08.03-10.29.17:589][ 0]LogModuleManager: Shutting down and abandoning module PakFile (1)
                          [2015.08.03-10.29.17:615][ 0]LogExit: Exiting.
                          [2015.08.03-10.29.17:617][ 0]Log file closed, 08/03/15 20:29:17
                          The only line in there that says error is something about experimental character AI but the error message up top is specifically about Cairo so... well, I don't know

                          Does any of this suggest a possible cause for the crash to you?

                          Comment


                            #14
                            Sorry, I haven't the slightest idea, what's causing it. Try cleaning the project before compiling it. If that doesn't work, try creating a new project and copy the C++ files there. Make sure it has the same name, or you'll have to change the build files.

                            Comment


                              #15
                              No worries, I'll have a go at that tonight and let you know how I go.

                              Comment

                              Working...
                              X