Sorta stuck...

So, years ago I created a game engine for XNA 3.1 called Reactor. I’ve gone through the (painful) process about a year ago to convert it to XNA 4 (with the sinister plan to convert to monogame like everyone else) but I’ve hit a snag.

I compiled everything from source, created new projects, deleted projects, edited csproj files, etc but I can’t for the life of me get shaders compiling. My biggest hurdle is the embedded shaders my engine runs on. It was a constant source of hassle with Microsoft’s convoluted content pipeline. It’s a huge burden to manage lots of shaders for my engine.

Converting to monogame seems to be no different. I’m not interested at all in DirectX anymore and would like to utilize the OpenGL paths for everything. Unfortunately, the entire content pipeline is still rampant. I have to convert fx files to binary files, then to glsl assembly. It would be so much easier if I could just write glsl. I keep having the same errors trying to compile shaders at all…

Error	31	Building content threw DllNotFoundException: Unable to load DLL 'libmojoshader_64.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
   at TwoMGFX.MojoShader.NativeMethods.MOJOSHADER_parse(String profile, Byte[] tokenbuf, Int32 bufsize, IntPtr swiz, Int32 swizcount, IntPtr smap, Int32 smapcount, IntPtr m, IntPtr f, IntPtr d)
   at TwoMGFX.ShaderData.CreateGLSL(Byte[] byteCode, Boolean isVertexShader, List`1 cbuffers, Int32 sharedIndex, Dictionary`2 samplerStates, Boolean debug) in C:\Users\greiser\Documents\projects\MonoGame\Tools\2MGFX\ShaderData.mojo.cs:line 18
   at TwoMGFX.EffectObject.CreateShader(ShaderInfo shaderInfo, String shaderFunction, String shaderProfile, Boolean isVertexShader, String& errorsAndWarnings) in C:\Users\greiser\Documents\projects\MonoGame\Tools\2MGFX\EffectObject.cs:line 827
   at TwoMGFX.EffectObject.CompileEffect(ShaderInfo shaderInfo, String& errorsAndWarnings) in C:\Users\greiser\Documents\projects\MonoGame\Tools\2MGFX\EffectObject.cs:line 691
   at MonoGameContentProcessors.Processors.MGEffectProcessor.Process(EffectContent input, ContentProcessorContext context) in C:\Users\greiser\Documents\projects\MonoGame\MonoGame.ContentPipeline\ContentProcessors\Processors\MGEffectProcessor.cs:line 52
   at Microsoft.Xna.Framework.Content.Pipeline.ContentProcessor`2.Microsoft.Xna.Framework.Content.Pipeline.IContentProcessor.Process(Object input, ContentProcessorContext context)
   at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAssetWorker(BuildItem item)
   at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.BuildAsset(BuildItem item)
   at Microsoft.Xna.Framework.Content.Pipeline.BuildCoordinator.RunTheBuild()
   at Microsoft.Xna.Framework.Content.Pipeline.Tasks.BuildContent.RemoteProxy.RunTheBuild(BuildCoordinatorSettings settings, TimestampCache timestampCache, ITaskItem[] sourceAssets, String[]& outputContent, String[]& rebuiltContent, String[]& intermediates, Dictionary`2& dependencyTimestamps, KeyValuePair`2[]& warnings)

With no idea how to get shader content building at all… Please, someone help.

and before anyone asks, yes the dll’s are all together in the folder…

forget it, I figured out I can use the external tools to create mgfxo files and reference those as resources in my dll’s But still, building content through the IDE is something that either needs to be fixed, or removed all together.

I get it’s ease of use and all but content is the bread and butter of all games, it should be easy to make content, to compile content, and embed content. maybe I would favor a direct loading of fbx models, opengl shaders (or hlsl depending on the platform), etc. So we have to write our shaders twice for the different render systems, who cares.

Don’t mind me, I’m just ranting because of frustrations getting my engine to run :confused: