by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 05:33
    Xaeroxe opened #7230
  • Jul 06 20:47
    BMarques commented #7228
  • Jul 06 20:41
    BMarques synchronize #7228
  • Jul 06 19:32
    harry-cpp closed #7229
  • Jul 06 19:32
    harry-cpp commented #7229
  • Jul 06 19:19
    jnoyola opened #7229
  • Jul 06 17:24
    BMarques edited #7228
  • Jul 06 17:23
    BMarques edited #7228
  • Jul 06 17:23
    BMarques opened #7228
  • Jul 06 13:53
    perpetualKid commented #6568
  • Jul 06 10:50

    Jjagg on develop

    [MGCB Editor] Add start menu sh… Merge pull request #7223 from h… (compare)

  • Jul 06 10:50
    Jjagg closed #7223
  • Jul 06 10:50
    Jjagg closed #7202
  • Jul 06 08:53
    ET3D-ET3D commented #6404
  • Jul 06 02:56
    MauriceButler commented #7174
  • Jul 05 21:53
    harry-cpp milestoned #7227
  • Jul 05 21:53

    harry-cpp on develop

    Bump dependencies (#7227) * Bu… (compare)

  • Jul 05 21:53
    harry-cpp closed #7227
  • Jul 05 21:53
    harry-cpp closed #7226
  • Jul 05 21:45
    mrhelmut synchronize #7227
Peter Amrehn
@jongleur1983
How is it possible to debug the Content Pipeline (ideally inside the GUI tool?
Nikos Kastellanos
@nkast
call System.Diagnostics.Debugger.Break() or .Launch() inside your importer/processor.
this will prompt you to open a new VS instance to debug it.
Daniel Sör
@Ragath
there's a test fixture to allow running automated tests on the pipeline projects in the MG source, but unfortunately i dont think that has ever been published as a nuget
Peter Amrehn
@jongleur1983
my underlying problem is that my XML files can't be imported by the pipeline tool, but the exception displayed isn't very helpful.
So i had two things in mind: 1) getting the full exception / cause by debugging, and/or/ 2) maybe being able to enhance the error display in the pipeline tool to include inner exceptions etc.
Daniel Sör
@Ragath
@jongleur1983 did you write an importer? or did you use the one that ships with monogame?
the format for that one is a bit special, you'd have to read the docs on it
Peter Amrehn
@jongleur1983

@Ragath I'd like to use the XML importer shipped with monogame - and happy to adapt my XML files accordingly; but all error I get is this:

/item1.xml: error: Importer 'XmlImporter' had unexpected failure!
System.Reflection.ReflectionTypeLoadException: Mindestens ein Typ in der Assembly kann nicht geladen werden. Rufen Sie die LoaderExceptions-Eigenschaft ab, wenn Sie weitere Informationen benötigen.
bei System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
bei System.Reflection.Assembly.GetTypes()
bei System.Linq.Enumerable.<SelectManyIterator>d__233.MoveNext() bei System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext()
bei System.Linq.Enumerable.FirstOrDefaultTSource
bei Microsoft.Xna.Framework.Content.Pipeline.Serialization.Intermediate.IntermediateSerializer.FindType(String typeName)
bei Microsoft.Xna.Framework.Content.Pipeline.Serialization.Intermediate.IntermediateReader.ReadObjectT
bei Microsoft.Xna.Framework.Content.Pipeline.Serialization.Intermediate.IntermediateReader.ReadObjectT
bei Microsoft.Xna.Framework.Content.Pipeline.Serialization.Intermediate.IntermediateSerializer.DeserializeT
bei Microsoft.Xna.Framework.Content.Pipeline.XmlImporter.Import(String filename, ContentImporterContext context)
bei Microsoft.Xna.Framework.Content.Pipeline.ContentImporter`1.Microsoft.Xna.Framework.Content.Pipeline.IContentImporter.Import(String filename, ContentImporterContext context)
bei MonoGame.Framework.Content.Pipeline.Builder.PipelineManager.ProcessContent(PipelineBuildEvent pipelineEvent)

Peter Amrehn
@jongleur1983
so the LoaderExceptions are the relevant part not visible here.
Daniel Sör
@Ragath
@jongleur1983 well its not gonna get much better than that i'm afraid. here's a description of the format https://www.cs.usfca.edu/~galles/cs420S13/lecture/UsingXNA4XML/XNA_XML.html
basically nothing like your average xml serializer i'm afraid
my recommendation would be to write a custom importer that deserializes the type you want, you can then either process it further or just use the pass-through processor
Maxime
@monsieurmax
@mostume222 yes it will
Peter Amrehn
@jongleur1983
@Ragath thanks. will have a look tonight
Peter Amrehn
@jongleur1983
failing with the custom content importer... followed roughly the post here http://blog.dylanwilson.net/posts/2015/creating-custom-content-importers-for-the-monogame-pipeline/ I have these two states: referencing my ContentPipeline project including the importer All assets fail to build (including those using default importers/processors as before). Without referencing the project my XML files I wrote the importer for still fail, but the other assets build successfully
Daniel Sör
@Ragath
the binary that the pipeline project produces needs to be referenced in the *.mgcb file
Peter Amrehn
@jongleur1983
@Ragath thanks, will have a look tonight (after work)
Peter Amrehn
@jongleur1983
okay, still not working, but I know the underlying problem: there's a ReflectionTypeLoadException thrown while importing - that's printed to error, but doesn't help.
It has no InnerException, but there is a LoaderExceptions-Property, and that one contains the relevant info (now I have to figure out what's the problem...)
Peter Amrehn
@jongleur1983
FINALLY! @Ragath it's important to use a net462 project for the pipelin project. Had a netcoreapp3.0 project as all other projects are, thus the required framework assemblies didn't match and couldn't be loaded. Thanks for your sample, the csproj file helped to find it out
Daniel Sör
@Ragath
@jongleur1983 ah yea, forgot to mention that, the dll is referenced by the mgcb.exe at runtime, which means the .net framework used for that is the limit on what you can use for the pipeline project
hopefully we can just use .net standard 2.0 in the future, if not now
Peter Amrehn
@jongleur1983
finally it looks like I could get it to work ;)
Peter Amrehn
@jongleur1983
is there a way to print out some info about the imported item that is shown in the success message of filtered output of the PipelineTool?
Peter Amrehn
@jongleur1983
is it known/as designed, that the Pipeline Tool (Gui) crashes whenever a referenced dll with importers is rebuilt (without the pipeline currently building itself)?
Nikos Kastellanos
@nkast
in the context object you will find a .Logger . Use this to log messages and warnings.
for errors throw an InvalidContentException or a PipelineException. That's the recommended way.
if you throw another type of exception it gets wrapped and reported as 'Unexpected Error in Importer/Processsor' and the original error message gets lost/obscured.
Nikos Kastellanos
@nkast
@jongleur1983 The pipeline loads the ref .dlls and scan them for importers/exporters , as the result the DLLs are locked by the system.
is it possible to debug your importer by invoking the MGCB directly? say for example set MGCB as 'start external program' in debug properties with the .mgcb file as a parameter...
Peter Amrehn
@jongleur1983
@nkast thanks. found the logger, and that's fine. I just wished I could log something that's shown inside the green success messages as well when output is filtered. I know how debugging works now though ;)
Peter Amrehn
@jongleur1983
is there a good way to learn shader programming? My goal is to migrate some old XNA3.1 shaders for MonoGame. I don't know what the old ones do exactly, I don't know the shader language, but I'd like to keep functionality as close as possible to the original one. Is there some kind of reference on how a shader looks like and works (ideally for the old XNA shaders AND for current monogame pipeline)?
Simon (Darkside) Jackson
@SimonDarksideJ
The biggest issue with updating old 3.1 shaders is keeping backwards compatibility. Easiest wat is to have an #IF on the shader version support and flipping to SM4.
However, it's not a magic bullet and sometimes doesn't work with features that are deprecated sadly.
Daniel Sör
@Ragath
if they're on 3.1 then i think we can assume they're in a read-only state by now, so a 1-way conversion should be fine
Peter Amrehn
@jongleur1983
@SimonDarksideJ what backwards compatibility are you talking about? I don't need to be compatible to the original platforms or similar. I try to re-implement (as just migrating is a worthless-to-go rabbit hole) the game on the current framework, just to get it running again.
will-scc
@will-scc
Hi guys, if I wanted to use the latest development build in an existing project, just running the installer from http://teamcity.monogame.net/repository/download/MonoGame_PackagingWindows/latest.lastSuccessful/MonoGameSetup.exe?guest=1 should be sufficient, right?
YTN0
@YTN0
Is the dev nugets functional for 3.8? I tried converting one of my projects over from the installer version to the 3.8 nuget version and I couldn't get my content pipeline stuff to compile. It kept complaining about assimp64.dll when trying to compile an fbx
Harry
@harry-cpp
They are functional
Peter Amrehn
@jongleur1983
Hi. I try to get the simplest possible version of a shader to work but keep getting "error X3003: redefinition of VertexShaderOuptut" for a struct I define, following this tutorial: https://www.reddit.com/r/gamedev/comments/435dkp/how_to_add_pixel_shaders_to_monogame/ (without calculating anything, skipping World and View and just returning input except normal)
Daniel Sör
@Ragath
@jongleur1983 you need the shader to actualy do stuff, or the compiler is going to strip everything out in the optimizing pass
Peter Amrehn
@jongleur1983
@Ragath thanks, that did the trick...
Peter Amrehn
@jongleur1983
compiling fine with the content pipeline, but failing to load now :/
Peter Amrehn
@jongleur1983
and loading successfully - thanks so far
YTN0
@YTN0
@harry-cpp are there instructions somewhere on setting up and using the nugets instead of the installer? I've not had any luck getting my pipeline content to compile. Is there a specific version of .net core or .net standard that we should be targeting? Also, where do the nuget templates come up? I also could not get the monogame core nuget to install (noth the DX or GL version). It also seems out of date.
YTN0
@YTN0

The specific issues are I can't compile any pipeline content that require Assimp. The error I get is:

2>SkyBoxCube.fbx : error : Importer 'FbxImporter' had unexpected failure!
2>Assimp.AssimpException: Error loading unmanaged library from path: Assimp64.dll, see inner exception for details.
2>The specified module could not be found. (0x8007007E)
2> ---> System.IO.FileNotFoundException: The specified module could not be found. (0x8007007E)

Separately, I can't seem to compile any shaders that reference or include other files e.g.

2>/DefaultShader.fx
2>EXEC : error : C:\Users\default\AppData\Local\Temp\tmp8C31.tmp(1,0): File not found: Lighting.fx in .(MonoGame.Effect.Preprocessor+MGFile) C:\Users\default\AppData\Local\Temp
2>Failed to parse 'C:\Users\default\AppData\Local\Temp\tmp8C31.tmp'!

Jay Mann
@jaym2444
When trying to initialize my own graphics device so I can interop it within a UI Library, I always get thrown an error about a null pointer in the default graphics adapter
Harry
@harry-cpp
@YTN0 the second issue has been fixed with the newest develop version
dunno about the first issue
report it on github
YTN0
@YTN0
@harry-cpp Thanks for the update. Will file an issue for the 1st problem. For the second issue, has that just been resolved? I am currently using the latest build, which was from yesterday (5/23)
Harry
@harry-cpp
Resolved 4 days ago: MonoGame/MonoGame#7148