Closed Bug 896752 Opened 11 years ago Closed 11 years ago

Windows support for the basic compositor

Categories

(Core :: Graphics: Layers, defect)

All
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla26

People

(Reporter: dvander, Assigned: dvander)

References

Details

Attachments

(1 file, 1 obsolete file)

Attached patch WindowsBasicCompositor.patch (obsolete) — Splinter Review
It basically seems to work. Aero Glass is broken if I force LAYERS_BASIC but the content area draws fine.
Attachment #779455 - Flags: review?(bas)
Comment on attachment 779455 [details] [diff] [review]
WindowsBasicCompositor.patch

Clearing review, talked with matt woodrow and can probably get glass working
Attachment #779455 - Flags: review?(bas)
Component: Graphics → Graphics: Layers
Comment on attachment 779455 [details] [diff] [review]
WindowsBasicCompositor.patch

I didn't have time to figure this out on my own - at the moment I'll take what we've got and not worry about glass looking bad.
Attachment #779455 - Flags: review?(bas)
Exactly how is glass broken? And what did you think the reason was when discussing with Matt? (In case I or someone else gets some time to look at this).
(In reply to Nick Cameron [:nrc] from comment #3)
> Exactly how is glass broken? And what did you think the reason was when
> discussing with Matt? (In case I or someone else gets some time to look at
> this).

It looks like glass doesn't render at all. It's just blank/white and iirc the control boxes didn't render either. Originally Matt thought the reason might have to do with not painting the same exact way as OnPaint (i.e., this patch ignores translucency), but after some playing around, it seemed translucency was different from the actual Aero Glass code.
When do we use the BasicCompositor on windows at -this- point?
(In reply to Bas Schouten (:bas.schouten) from comment #5)
> When do we use the BasicCompositor on windows at -this- point?

With Electrolysis, when GPU acceleration doesn't work (unless it's guaranteed to work everywhere?)
Comment on attachment 779455 [details] [diff] [review]
WindowsBasicCompositor.patch

Review of attachment 779455 [details] [diff] [review]:
-----------------------------------------------------------------

::: widget/windows/nsWindow.cpp
@@ +3535,5 @@
> +
> +  MOZ_ASSERT(!mCompositeDC);
> +  mCompositeDC = dc;
> +
> +  return gfxPlatform::GetPlatform()->CreateDrawTargetForSurface(surf, size);

This doesn't do what you want it to do. This isn't guaranteed to be wrapping your DrawTarget (although it fill in this case), you should use the method on the Moz2D Factory.
Attached patch fixSplinter Review
Uses 2d factory
Attachment #779455 - Attachment is obsolete: true
Attachment #779455 - Flags: review?(bas)
Attachment #794541 - Flags: review?(bas)
Attachment #794541 - Flags: review?(bas) → review+
https://hg.mozilla.org/mozilla-central/rev/80ceea190a42
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
Blocks: 913249
Depends on: 913252
(In reply to David Anderson [:dvander] from comment #0)
> Aero Glass is broken if I force LAYERS_BASIC but
> the content area draws fine.

See bug 913329 for a fix.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: