2.83 custom cursor help

Saw some stuff about removing large cursors, first of all please don’t do that. The way they were implemented wasn’t good, yeah I get it, all they did was make everything too big. But, what I do is use a little more than the 16x16 space you get from the small ones. You don’t have to just duplicate everything from the small size, and make it humongous. Can be whatever shape and size I need, as opposed to being left with whatever you guys decide on for default.

I don’t even care about small cursors, I just need to define a bunch of 32x32 in wm_cursors.c, make blender use them, and go about my business. I’d even live with 16x16 if you can’t find a way to convince whoever this mystery userbase is, to move on from whatever operating system that’s incapable of handing 32x32 cursors. The real issue is making blender use the cursors in wm_cursors.c, but it’s defiitely nice having more than 16x16 to work with.

Right now in 2.83 alpha, the hacky workaround I figured out for undoing what you did from 2.81 to 2.82, to force system cursors for different things, isn’t working. All that was needed for 2.82, was to get rid of lines 195-209 of wm_cursors.c, the whole thing about the crosshair cursor’s bad visibility.

The crosshair cursor is bad, that’s why I replace it with mine. It should just be a box with an arrow in the bottom right corner for visibility’s sake. As you’ve realized, a crosshair isn’t that easy to find when you need to. Besides that, it blocks what you want to look at anyway, while also not showing you the selection radius. I don’t need 4 lines showing me the pixel I am clicking on. I can find the center of a ~16 pixel box easily enough without 4 landing strips waving me in. Especially when the selection radius has some play and forgiveness built into it.

Anyways, I make a cursor that stays out of the way, is easy to find, and shows the selection radius (I modify that as well so it isn’t so ridiculously huge). Being stuck with a NW Arrow system cursor is way worse than just leaving it alone until you figure out some equivalent that looks flashier, or whatever reason you’ve changed it.

In the meantime I’m going to try to figure out how to just slam the old wm_cursors.c into 2.83, but it won’t build at the moment, because you’ve removed things in other places that it needs. So thanks for your time, and hopefully helping me out with my problem.

Screenshots from 2.82 of my large versions of NWArrow and Crosshair compared to yours so you see what I’m talking about.

Ok so there’s 2 things missing from 283 that are needed for 282 wm_cursors to work.

‘curssize’: is not a member of ‘UserDef’
&
‘is_motion_absolute’: is not a member of ‘wmEvent’

UserDef is
blender\source\blender\makesdna\DNA_userdef_types.h

wmEvent is
blender\source\blender\windowmanager\WM_types.h

Can add these the same way as they are in 282:

char is_motion_absolute;
&
short curssize

Unfortunately I get 129 errors

F:\blender-git\blender\source\blender\makesdna\DNA_defaults.h(34,51): error C2065: ‘SDNA_TYPE_MAX’: undeclared identifier (compiling source file F:\blender-git\blender\source\blender\makesdna\intern\dna_defaults.c) [F:\blender-git\build_windows_Lite_x64_vc16_Release\source\blender\makesdna\intern\bf_dna.vcxproj]
F:\blender-git\blender\source\blender\makesdna\DNA_defaults.h(34,51): error C2057: expected constant expression (compiling source file F:\blender-git\blender\source\blender\makesdna\intern\dna_defaults.c) [F:\blender-git\build_windows_Lite_x64_vc16_Release\source\blender\makesdna\intern\bf_dna.vcxproj]
F:\blender-git\build_windows_Lite_x64_vc16_Release\source\blender\makesdna\intern\dna.c(1,1): fatal error C1189: #error: “Error! can’t make correct DNA.c file from F:\blender-git\blender\source\blender\makesdna\intern\makesdna.c:1490, check alignment.” [F:\blender-git\build_windows_Lite_x64_vc16_Release\source\blender\makesdna\intern\bf_dna.vcxproj]
F:\blender-git\blender\source\blender\makesdna\DNA_defaults.h(34,51): error C2466: cannot allocate an array of constant size 0 (compiling source file F:\blender-git\blender\source\blender\makesdna\intern\dna_defaults.c) [F:\blender-git\build_windows_Lite_x64_vc16_Release\source\blender\makesdna\intern\bf_dna.vcxproj]

And on and on

Ok so it’s a padding error, just have to add some shorts here and there as needed, good gravy what a mess for something so little.

Got it somewhat working. It is using the small version of NW Arrow no matter if you’re in edit mode or not, but at least I can change it to the small version of what I use for the crosshair. Getting sleepy so I’ll check it tomorrow should be pretty easy I hope

Hi @lcas !
Please tell me how you managed to set a custom cursor instead of a crosshair from 2.83

I know there is a way to crack the program to change the cursor, but i’m lazy lol. So an easier way would be nice yeah.

#crosshair is garbage

Sure, and first of all none of the above is necessary.

You can do it right now without changing any scripts. Even if you would need to change some of that around, it’s unlikely you’d need to force Blender to use an older version of a script to make it happen.

You do need to get the source code, if you aren’t familiar with that stuff don’t worry, I’m not either, just enough to get what I want. Follow this and you’ll be fine - https://wiki.blender.org/wiki/Building_Blender

At the moment all you gotta do is replace the cursor file with something you want.

They are here, again need to grab the source -
blender-git\blender\release\windows\icons\cursors

If you want the arrow cursor you see in object mode, all you need to do is copy pointer.cur and rename it cross.cur, (replacing the existing cross.cur)

Can make your own cursor with Real World Cursor Editor http://www.rw-designer.com/cursor-maker

Basically, edit or replace cross.cur to get rid of the crosshair cursor

Going forward they are going to make different cursors for different tools. Personally looking forward to what they are going to do, always like more options. If there’s something I don’t like I figure the most that will need to be done is to just edit / replace each cursor as needed. But who knows, might need to change some script(s) around to get this working again.

I’m busy until next week and 2.83 isn’t quite done yet, but I’m planning on making a few videos to show people how to do this and a few other things. Real easy stuff, easy enough I could figure it out with no experience and a bit of help from people around here.

Everything worked out, thank you.