Various fixes

This commit is contained in:
Ilya Laktyushin 2023-07-18 00:26:38 +02:00
parent 5afa9250aa
commit 47fbbbc026
4 changed files with 9 additions and 36 deletions

View File

@ -215,13 +215,17 @@ public final class DrawingStickerEntityView: DrawingEntityView {
context.draw(image.cgImage!, in: imageRect)
}
var synchronous = false
if case let .image(_, type) = self.stickerEntity.content {
synchronous = type == .dualPhoto
}
self.imageNode.setSignal(.single({ arguments -> DrawingContext? in
let context = DrawingContext(size: arguments.drawingSize, opaque: false, clear: true)
context?.withFlippedContext({ ctx in
drawImageWithOrientation(image, size: arguments.drawingSize, in: ctx)
})
return context
}))
}), attemptSynchronously: synchronous)
self.setNeedsLayout()
} else if case let .video(videoPath, image, _) = self.stickerEntity.content {
let url = URL(fileURLWithPath: videoPath)

View File

@ -663,13 +663,9 @@ final class VideoInputScalePass: RenderPass {
}
func process(input: MTLTexture, secondInput: MTLTexture?, timestamp: CMTime, device: MTLDevice, commandBuffer: MTLCommandBuffer) -> MTLTexture? {
#if targetEnvironment(simulator)
#else
guard max(input.width, input.height) > 1920 || secondInput != nil else {
return input
}
#endif
let scaledSize = CGSize(width: input.width, height: input.height).fitted(CGSize(width: 1920.0, height: 1920.0))
let width: Int
@ -718,10 +714,6 @@ final class VideoInputScalePass: RenderPass {
renderCommandEncoder.setRenderPipelineState(self.mainPipelineState!)
#if targetEnvironment(simulator)
let secondInput = input
#endif
let (mainVideoState, additionalVideoState, transitionVideoState) = self.transitionState(for: timestamp, mainInput: input, additionalInput: secondInput)
if let transitionVideoState {

View File

@ -1974,25 +1974,6 @@ public final class MediaEditorScreen: ViewController, UIDropInteractionDelegate
}
}
}
#if targetEnvironment(simulator)
if case let .asset(asset) = subject, asset.mediaType == .video {
let videoEntity = DrawingStickerEntity(content: .dualVideoReference)
videoEntity.referenceDrawingSize = storyDimensions
videoEntity.scale = 1.625
videoEntity.position = PIPPosition.topRight.getPosition(storyDimensions)
self.entitiesView.add(videoEntity, announce: false)
mediaEditor.setAdditionalVideo("", positionChanges: [VideoPositionChange(additional: false, timestamp: 0.0), VideoPositionChange(additional: true, timestamp: 3.0)])
mediaEditor.setAdditionalVideoPosition(videoEntity.position, scale: videoEntity.scale, rotation: videoEntity.rotation)
if let entityView = self.entitiesView.getView(for: videoEntity.uuid) as? DrawingStickerEntityView {
entityView.updated = { [weak videoEntity, weak self] in
if let self, let videoEntity {
self.mediaEditor?.setAdditionalVideoPosition(videoEntity.position, scale: videoEntity.scale, rotation: videoEntity.rotation)
}
}
}
}
#endif
self.gradientColorsDisposable = mediaEditor.gradientColors.start(next: { [weak self] colors in
if let self, let colors {

View File

@ -3481,22 +3481,18 @@ public final class StoryItemSetContainerComponent: Component {
let entities = generateChatInputTextEntities(caption)
var updatedText: String?
var updatedEntities: [MessageTextEntity]?
var updatedPrivacy: EngineStoryPrivacy?
if caption.string != item.text || entities != item.entities {
updatedText = caption.string
updatedEntities = entities
}
if privacy.privacy != item.privacy {
updatedPrivacy = privacy.privacy
}
if let mediaResult {
switch mediaResult {
case let .image(image, dimensions):
updateProgressImpl?(0.0)
if let imageData = compressImageToJPEG(image, quality: 0.7) {
updateDisposable.set((context.engine.messages.editStory(id: id, media: .image(dimensions: dimensions, data: imageData, stickers: stickers), text: updatedText, entities: updatedEntities, privacy: updatedPrivacy)
updateDisposable.set((context.engine.messages.editStory(id: id, media: .image(dimensions: dimensions, data: imageData, stickers: stickers), text: updatedText, entities: updatedEntities, privacy: nil)
|> deliverOnMainQueue).start(next: { [weak self] result in
guard let self else {
return
@ -3544,7 +3540,7 @@ public final class StoryItemSetContainerComponent: Component {
}
}
updateDisposable.set((context.engine.messages.editStory(id: id, media: .video(dimensions: dimensions, duration: duration, resource: resource, firstFrameFile: firstFrameFile, stickers: stickers), text: updatedText, entities: updatedEntities, privacy: updatedPrivacy)
updateDisposable.set((context.engine.messages.editStory(id: id, media: .video(dimensions: dimensions, duration: duration, resource: resource, firstFrameFile: firstFrameFile, stickers: stickers), text: updatedText, entities: updatedEntities, privacy: nil)
|> deliverOnMainQueue).start(next: { [weak self] result in
guard let self else {
return
@ -3565,7 +3561,7 @@ public final class StoryItemSetContainerComponent: Component {
}))
}
}
} else if updatedText != nil || updatedPrivacy != nil {
} else if updatedText != nil {
let _ = (context.engine.messages.editStory(id: id, media: nil, text: updatedText, entities: updatedEntities, privacy: updatedPrivacy)
|> deliverOnMainQueue).start(next: { [weak self] result in
switch result {