x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Office Holiday

Epic Games' offices will be on holiday from June 22nd to July 7th. During this period support will be limited. Our offices will reopen on Monday, July 8th. 

Draw in editor window?

I've been trying to figure this one out for several weeks. I need a way to draw lines & rects onto a custom slate widget, in order to visualize some internal data. And although I can't seem to figure out where, I believe that somewhere, UE4 is doing this internally for things like SGraphEditor.

So is there any way to actually draw lines in an SWindow, or any other slate widget?
Where in code I should be looking?

Product Version: UE 4.17
Tags:
more ▼

asked Nov 02 '17 at 10:23 PM in C++ Programming

avatar image

MichaelWion
250 27 40 50

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

Ok, so I was under the impression that you couldn't actually override OnPaint in 4.17+, but I guess that's not the case after all. The solution to anyone trying to do so and getting compiler errors is to NOT copy/paste function definitions from the API docs, but instead, copy them from the engine source whenever possible.

In this particular case, the SCanvas::OnPaint definition from the docs is actually missing it's const qualifier at the end, forcing the compiler to throw C3668. The actual definition in code is:

 virtual int32 OnPaint( const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled ) const override;

After fixing my custom widget class's definition to match this, I got it to compile and was able to use the typical FSlateDrawElement::* methods to paint onto the canvas.

more ▼

answered Nov 03 '17 at 02:09 AM

avatar image

MichaelWion
250 27 40 50

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question