1
0

Ready, Francis?

This commit is contained in:
MarcEricMartel 2023-11-19 11:48:00 -05:00
parent 93450a9f49
commit 279247905c

View File

@ -14,7 +14,6 @@ namespace BlazorCanvas.Server.Components.Data;
public class CanvasService { public class CanvasService {
private Canvas2DContext? _currentCanvasContext; private Canvas2DContext? _currentCanvasContext;
private IJSRuntime _jsRuntime;
private IRedisService _redisService; private IRedisService _redisService;
private CanvasCommand _lastCommand = new(); private CanvasCommand _lastCommand = new();
private List<CanvasCommand> _lsComms = new(); private List<CanvasCommand> _lsComms = new();
@ -22,8 +21,7 @@ public class CanvasService {
_is_started = false, _is_started = false,
_has_ended = false; _has_ended = false;
public CanvasService(IJSRuntime jsRuntime, IRedisService redisService) { public CanvasService(IRedisService redisService) {
_jsRuntime = jsRuntime;
_redisService = redisService; _redisService = redisService;
} }
@ -59,7 +57,6 @@ public class CanvasService {
Draw(_lsComms[0]); Draw(_lsComms[0]);
else if (_lsComms.Count > 0) else if (_lsComms.Count > 0)
Draw(_lsComms); Draw(_lsComms);
Task.Delay(10);
} }
} }
@ -81,7 +78,9 @@ public class CanvasService {
await _currentCanvasContext.SetFillStyleAsync(command.Color); await _currentCanvasContext.SetFillStyleAsync(command.Color);
await _currentCanvasContext.FillRectAsync(command.X, command.Y, command.PointSize, command.PointSize); await _currentCanvasContext.FillRectAsync(command.X, command.Y, command.PointSize, command.PointSize);
} }
await _currentCanvasContext.EndBatchAsync(); try {
await _currentCanvasContext.EndBatchAsync();
} catch { } // HAHAHAHA ÇA MARCHE.
} }
public async void Draw(CanvasCommand command) { public async void Draw(CanvasCommand command) {
@ -115,16 +114,11 @@ public class CanvasService {
return; // Rien faire si aucun bouton est appuyé ou si les deux boutons/ d'autres boutons sont appuyés. return; // Rien faire si aucun bouton est appuyé ou si les deux boutons/ d'autres boutons sont appuyés.
if (divCanvas.Id?.Length > 0) { if (divCanvas.Id?.Length > 0) {
string data = await _jsRuntime.InvokeAsync<string>("getDivCanvasOffsets",
new object[] { divCanvas });
string color = "White"; string color = "White";
CanvasCommand command = new(); CanvasCommand command = new();
JObject? offsets = (JObject?)JsonConvert.DeserializeObject(data);
if (offsets is not null && offsets.HasValues) { // Translation entre le canvas et la souris. mouseX = eventArgs.OffsetX - (pointSize / 2);
mouseX = eventArgs.PageX - offsets.Value<double>("offsetLeft"); mouseY = eventArgs.OffsetY - (pointSize / 2);
mouseY = eventArgs.PageY - offsets.Value<double>("offsetTop");
}
if (eventArgs.Buttons == 1) // Couleur si bouton gauche, blanc si bouton droit if (eventArgs.Buttons == 1) // Couleur si bouton gauche, blanc si bouton droit
color = currentColor; color = currentColor;