Have you tried querying the window size as well as texture sizes?
Not sure what the SDL functions are, but you want to find the client area of the window, and then query your OpenGL textures for their size, with glGetTexLevelParameteriv, and the viewport with glGetIntegerv.
Depends. You don't necessarily need to read back until you save, if you render into your vertex-buffer or read the same heightmap-texture from the vertex-shader that you write in the "edit" pixel-shader. The bandwidth for reading back will probably be several GB per second so it's not a problem in that way.. but if you start waiting every frame for such a read-back before sending the same data back to the GPU again to render it, latency could impact the framerate quite a bit. Hard to say before you try though.
Usually this performance is more about breaking synchronization and frame-buffering making it difficult to maintain proper 60 Hz vsync, but for an editor I wouldn't worry too much until you try it, unless it's very difficult to implement in which case you might want to draw up some sequence-diagrams of your intended framehandling and think about how it can be optimized before you spend time on something that might be too slow.
Sounds awesome, but make it like 700-800 instead, in 1745 Britain was already pretty technologically advanced in the real world after spending 1500 years less so than the Romans. If Rome had not fallen I would rather expect your game to take place on Mars.
Secondly... for them to keep slaves seems somewhat unlikely in such a scenario. Slavery has rarely if ever kept societies very stable for long periods of time, and would probably require a society to settle into some sort of equilibrium where every generation lives the same as the last. Even Rome at its greatest had slave rebellions.
Perhaps they suffered some setbacks / war / population-decline 200 years earlier and resorted to slavery, and then it stuck around a generation or two too long even as new advancements where made. I guess such events could add a century or two to the timeline.
If you mean to make 1745 Britain seem sort of like real 1745 Britain but with cool technology I doubt that Rome is the right way to go. The society that dominated Britain after 1000 AD was extremely different to anything that existed in Roman days, and if Britain is supposed to have evolved for a millennium with Roman leaders it would be unrecognizable long before modern Europe had even begun to develop.
It's for multi-sampled textures, like a render-target, not the sampler-state. If you don't have 1 for the sample-count and want to sample the texture in a shader, you need to use a Texture2DMS instead of a Texture2D in the shader.
EDIT: (And D3D11_TEX2DMS_SRV in the view-dimension when creating the shader resource view. Similar for the render target view.)
I see, I think misunderstood your question. If you want to measure the entire string, use a text layout, and when you want to measure only a glyph, there is for example GetDesignGlyphMetrics on a font face. Either way I think you probably want to cache these and not call DirectWrite more than necessary when you want good performance.
If you look through the MSDN pages for fonts/font-faces and text-layouts/formats there are many different ways to measure text, and get internal font parameters.
It really depends on exactly what you want to implement at a higher level, there are often several ways to do the same thing in DirectWrite.
Pre-save the collision masks instead of creating them from D3D memory, so they can just be read into an array. Requiring textures to be lockable and readable sounds like a bad idea. Should make loading time pretty close to zero too if you can just read the data from a file already in your internal collision mask format.
There is absolutely no way you can do that, unless you pay them millions. Even so I doubt a company like Marvel would ever agree unless they got absolute say on every single design choice as well as whether or not the game would even be released once done, as protecting the reputation of their multi billion dollar franchise s more important than a single payday.
If you Google a bit you might be able to find info on how strict they are, some big companies will come after you right away to shut you down on principle, whereas some won't really care. In general you can't use any existing IP without express permission.