Author |
Topic |
|
GaryNas
New Member
3 Posts |
Posted - Jan 30 2006 : 11:13:59 AM
|
I'm using Visual Studio 2005 Pro, DirectX December 2005 SDK, and Visual Assist X 10.2.1440... Here's what happens:
IDirect3DDevice* pDevice; pDevice->Clear(
After I type the '(' intellisense (the yellow popup bar) will show this:
(Clear)(THIS_DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil)
At this point, Clear is bolded. As I start typing the arguments, the bold stays one behind what the current argument is. So, if my code was:
pDevice->Clear(0, NULL, *Me on the DWORD Flags argument*
then CONST D3DRECT* pRects would be the current highlighted parameter, instead of DWORD Flags. This happens with every single Direct3D call on every interface I tested. I'm guessing it may be a parsing problem when a COM method is declared like STDMETHOD(EndScene)(THIS) PURE;...
Has anyone else had this problem? How can I fix it?
Thanks!
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Jan 30 2006 : 4:14:51 PM
|
there is a known problem when one of the function parameters is a function pointer. a simple example is qSort(...) once you reach the 4th parameter, the function pointer.
to save me trying to download and install these SDK's can you post the function prototype for one of these functions? i am guessing that the same problem is occurring here. |
zen is the art of being at one with the two'ness |
|
|
GaryNas
New Member
3 Posts |
Posted - Jan 30 2006 : 4:35:21 PM
|
The SDK document for IDirect3DDevice9::Clear is at http://tinyurl.com/bhffy.
The function prototype is:
STDMETHOD(Clear)(THIS_ DWORD Count,CONST D3DRECT* pRects,DWORD Flags,D3DCOLOR Color,float Z,DWORD Stencil) PURE;
Also, upon reading your qSort example, I noticed that even common CRT functions like memcpy and memset aren't parsed properly. For example, typing memset( will bring up the following tooltip with this bolding:
void * memset(__out_bcount_full_opt(_Size) void* _Dst, __in int _Val, __int size_t _Size)
And this is prototyped in the Visual Studio 2005 CRT as:
void * __cdecl memset(__out_bcount_full_opt(_Size) void * _Dst, __in int _Val, __in size_t _Size);
When I type the second parameter, nothing is bolded in the tooltip and when I type the third parameter, the second one is then bolded in the tooltip.
|
|
|
GaryNas
New Member
3 Posts |
Posted - Jan 31 2006 : 7:24:12 PM
|
Just as an update, I uninstalled Visual Assist and the Parameter Info intellisense feature is now working properly. So now when I type in memset(, this Parameter Info tooltip shows up:
void* memset(void * _Dst, int _Val, size_t _Size)
This is still going to the same prototype as before, as listed above (I only have the Platform SDK that came with Visual Studio 2005 installed). Moreover, the Direct3D Parameter Info tooltips now display properly. For example, IDirect3DDevice9::Clear's tooltip is:
HRESULT Clear(DWORD Count, const D3DRECT* pRects, etc etc)
Again, it's coming from the same prototype as before and I only have one d3d9.h installed on my system, which is from the December 2005 DirectX SDK.
Any ideas?
|
|
|
feline
Whole Tomato Software
United Kingdom
19014 Posts |
Posted - Feb 01 2006 : 5:52:00 PM
|
it seems this is the same bug
case=475
as i understand it the problem has two root causes. firstly the IDE on its own is not that good at popping up tooltips. so when VA has decided that the IDE is not going to produce a tooltip it puts its own on the screen instead.
the second factor is that VA applies syntax highlighting to both its own and the IDE's tooltips. in the process it "effects" what is going on.
as a work around you can turn off VA Options -> Environment -> Fonts and Colors -> Apply Colouring to -> Tooltips
testing with qsort(...) this fixes the bold parameter bug for me, so hopefully will also work for you. of course it does mean that you will not get any enhanced syntax highlighting in your tooltips. |
zen is the art of being at one with the two'ness |
|
|
support
Whole Tomato Software
5566 Posts |
Posted - Jun 19 2006 : 5:22:11 PM
|
Fixed in build 1524:
Bolding within parameter info no longer confused by function pointers. (case=475) |
|
|
|
Topic |
|
|
|